如何创建一个存储过程,该过程采用 MYSQL 中开始日期和结束日期之间的销售开始日期和结束日期

how to create a stored procedure that takes the start and end dates of the sales between the start and the end dates in MYSQL

这是我第一次使用它,如有任何混淆,敬请谅解。

我正在尝试创建一个存储过程,它获取销售的开始日期和结束日期,并在 MYSQL 中显示开始日期和结束日期之间的所有销售交易。

所以我有 2 tables:

  1. 包含订单日期的订单 (order_date)
  2. transactions 与每个订单的所有交易 均由 order_ID
  3. 链接

这是我的代码

DELIMITER //

 CREATE PROCEDURE gettransactions(IN `start date` date , `end date` date)

BEGIN
 
SELECT * FROM  transactions t

join orders o on t.order_id = o.order_id

WHERE (o.order_date BETWEEN (SELECT MIN(DATE(o.order_date)) FROM orders) AND (SELECT MAX(DATE(o.order_date)) FROM orders));

  
END //

代码运行良好,我得到它来插入 tables(抱歉,我不知道为什么我无法在此处直接添加屏幕截图): https://i.ibb.co/fMdPF48/sql.png

我的问题是,无论我插入什么日期,结果总是我在 table 中的所有交易。所以假设我想要从 4 月 7 日到 6 月 25 日的所有交易,我应该使用:

call chicgirls.gettransactions('2020-04-07', '2020-06-25');

结果应该是这个范围内订单的成交,为什么我得到的都是成交?无论我输入什么日期,它都会发生。

谢谢

您需要在查询中使用参数。您正在选择所有订单,因为您正在选择同一 table.

中最小日期和最大日期之间的所有内容
SELECT *
FROM transactions AS t
JOIN orders AS o ON t.order_id = o.order_id
WHERE o.order_date BETWEEN `start date` AND `end date`;