MySQL:即使没有日期行,也有办法获取两个日期之间所有日期的数据吗?
假设我有一个SELECT查询,如下所示:MySQL:即使没有日期行,也有办法获取两个日期之间所有日期的数据吗?,mysql,Mysql,假设我有一个SELECT查询,如下所示: SELECT orders.date , SUM(orders.amount) AS total_amount FROM orders WHERE orders.date >= '2021-04-01' AND orders.date <= '2021-04-05'; GROUP BY orders.date 在表中,假设我没有2021-04-03和2021-04-04日期的任何记录,显然不会返回这两个日期的总
SELECT orders.date
, SUM(orders.amount) AS total_amount
FROM orders
WHERE orders.date >= '2021-04-01'
AND orders.date <= '2021-04-05';
GROUP BY orders.date
在表中,假设我没有2021-04-03和2021-04-04日期的任何记录,显然不会返回这两个日期的总和数据
P>我的问题是,是否有可能有一个查询将空白日期返回为0的总金额,这样我就可以得到这样的结果?
日期
总金额
2021-04-01
11111
2021-04-02
22222
2021-04-03
0
2021-04-04
0
2021-04-05
12345
您可以生成一个日历表,其中包含希望显示在最终报告中的所有日期。然后,左键将其连接到当前表中,并获取总和。我们可以使用内联子查询代替实际的日历表: 选择 d、 日期, 合并相扑金额,0作为总金额 从…起 选择“2021-04-01”作为日期联合所有-替换此临时表 选择“2021-04-02”UNION ALL(带真实表格) 选择“2021-04-03”联合所有-包含所有日期 选择“2021-04-04”联合所有 选择“2021-04-05” D 左连接命令 o.日期=d.日期 分组 d、 日期 订购人 d、 日期;
例如,在递归CTE中生成基准日期列表,然后将您的数据表连接到该列表。或者只处理应用程序中的数据显示问题code@Akina谢谢,我不知道CTE。有趣的概念。这对我来说都是拉丁语。在这个CTE的时代,我就是不能强迫自己去做。格洛丽亚·蒙迪