【发布时间】:2020-09-03 02:17:39
【问题描述】:
我正在使用这个可以正常工作并检索我想要的值的查询,唯一的问题是,如果给定日期没有值,它不会将值显示为 0。
我需要的数据是过去 7 天的销售额总和,如果没有销售额,则返回 0。
SELECT
DATEADD(DAY, 0, DATEDIFF(day, 0, vendas.data)) AS data,
COUNT(aff_sub.N_Enc) AS tot_enc,
SUM(aff_sub.Valor) AS tot_vendas
FROM
aff_sub
INNER JOIN
vendas ON aff_sub.N_Enc = vendas.ID
WHERE
(aff_sub.ID = 1538)
AND (vendas.data >= DATEADD(day, - 7, GETDATE()))
GROUP BY
DATEADD(DAY, 0, DATEDIFF(day, 0, vendas.data))
谁能帮帮我? 谢谢
【问题讨论】:
-
考虑使用日期序列创建日历实用程序表或使用 CTE 生成日期序列。然后,您可以将其包含在查询中以获取所有感兴趣的日期以及
LEFT JOIN以在该日期存在数据时返回相关数据。
标签: sql-server group-by datediff dateadd