我想从我的MySQL数据库中检索过去7天中每个日期的交易总额,但有些日期没有任何交易。我如何为这些日期返回0?
这是我曾经尝试过的SQL查询,但是这个查询只给出那些在那些日子里确实有值的查询。
SELECT COUNT(transaction_id) AS orders, SUM(amount) AS sales, CAST(time AS DATE) AS time FROM tbltransactions WHERE time BETWEEN CAST(? AS DATE) AND CAST(? AS DATE) GROUP BY CAST(time AS DATE) ORDER BY time ASC
2条答案
按热度按时间e4yzc0pl1#
您可以使用带有SELECT语句的子查询来生成最近7天内所有日期的列表,然后将其与事务表进行LEFT JOIN。这将为您提供一个结果集,其中0表示没有事务的日期:
vmjh9lq92#
尝试先生成日期,然后联接数据表:
以下是测试数据: