MySQL 过程导致语法错误

标签 mysql stored-procedures mysql-error-1064

这是我的 MySQL 程序。我在执行此操作时遇到错误。

  DELIMITER //
  CREATE PROCEDURE GET_ORDER_HISTORY_LIST(IN distid int)
  BEGIN
  SELECT 
  ort.order_id,
  ort.transaction_id,
  ort.user_id,
  ort.transaction_date,
  ort.insert_by,
  ort.organization_id,
  odt.course_id,
  count(odt.quantity),
  ct.course_name,
  ct.course_code
  FROM cdp_order_master as ort
  JOIN cdp_order_detail as odt ON odt.order_id = ort.order_id 
  JOIN cdp_course as ct ON ct.course_id = odt.course_id
  WHERE ort.user_id = distid
  GROUP BY ort.order_id
  END //
 DELIMITER ;

错误是

 #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END' at line 19

最佳答案

DELIMITER //
  CREATE PROCEDURE GET_ORDER_HISTORY_LIST(IN distid int)
  BEGIN
  SELECT 
  ort.order_id,
  ort.transaction_id,
  ort.user_id,
  ort.transaction_date,
  ort.insert_by,
  ort.organization_id,
  odt.course_id,
  count(odt.quantity),
  ct.course_name,
  ct.course_code
  FROM cdp_order_master as ort
  JOIN cdp_order_detail as odt ON odt.order_id = ort.order_id 
  JOIN cdp_course as ct ON ct.course_id = odt.course_id
  WHERE ort.user_id = distid
  GROUP BY ort.order_id; //I had made change at this line.
  END //
 DELIMITER ;

您可以尝试上面的查询。

这是一个SQL Fiddle .

关于MySQL 过程导致语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45500812/

相关文章:

mysql 日期时间比较查询语法对我不起作用

mysql - 根据子查询的结果更新表中的多行

mysql - 更新 MySQL root 密码 - Ubuntu

mysql - 带有更新的 Mysql 存储过程

sql-server - 使用存储过程中的表名称填充数据集

sql - 如何获取 SP 中已声明变量的维度?

mysql-error-1064 - 错误 "mysqld dead but pid file exists"

mysql - SELECT ... IN 复制结果集中的记录?

mysql - 需要帮助从选择查询更新表

mysql - 公交车调度 - 关系数据库或 nosql