MySQL:即使没有日期行,也有办法获取两个日期之间所有日期的数据吗?

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查询,如下所示:

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的时代,我就是不能强迫自己去做。格洛丽亚·蒙迪