【发布时间】:2020-12-02 05:01:55
【问题描述】:
这是我第一次使用它,如有任何困惑,请见谅。
我正在尝试创建一个存储过程,它获取销售的开始日期和结束日期,并在 MYSQL 中显示开始日期和结束日期之间的所有销售交易。
所以我有两张桌子:
- 包含订单日期(order_date)的订单
- 每个订单的所有交易的交易 均由 order_ID 链接
这是我的代码
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 //
代码运行良好,我得到它来插入表格(抱歉,我不知道为什么我无法直接在此处添加屏幕截图): https://i.ibb.co/fMdPF48/sql.png
我的问题是,无论我插入什么日期,结果总是我在表中的所有交易。所以假设我想要从 4 月 7 日到 6 月 25 日的所有交易,我应该使用:
call chicgirls.gettransactions('2020-04-07', '2020-06-25');
结果应该是这个范围内的订单的交易,为什么我得到了所有的交易?无论我在哪个日期,它都会发生。
谢谢
【问题讨论】:
-
请不要张贴文字图片。见meta.stackoverflow.com/questions/333952/…
-
你的程序从不使用参数。
标签: mysql mysql-workbench