gpt4 book ai didi

sql-server - 按日期零结果计数组

转载 作者:行者123 更新时间:2023-12-02 05:04:44 24 4
gpt4 key购买 nike

我有这个 SQL 来获取报告:

select 
count(id_reg) total,
YEAR(fechaingreso) ano,
MONTH(fechaingreso) mes,
DAY(fechaingreso) Dia
from
vw_casos_tc
where
fechaingreso between '2012-12-05' and '2013-5-8'
group by
DAY(fechaingreso), MONTH(fechaingreso), YEAR(fechaingreso)
order by
Ano, Mes, dia

它工作正常,除了当 count(id_reg) = 0 时没有记录的 DAYS,这几天没有出现在我的结果中。

total   ano     mes     dia
-----------------------------
66 2012 12 13
22 2012 12 14
23 2012 12 17

(2012 12 15 和 2012 12 16) 没有结果。我如何修改我的脚本以获得总计 = 0 的这一天?

最佳答案

这是一种方法,假设使用 SQL Server 2008(尽管您可以针对 SQL Server 2005 轻松修改它):

DECLARE @StartDate DATE, @EndDate DATE
SET @StartDate = '20121205'
SET @EndDate = '20130508';

WITH AllDays AS
(
SELECT @StartDate YourDate
UNION ALL
SELECT DATEADD(DAY,1,YourDate)
FROM AllDays
WHERE DATEADD(DAY,1,YourDate) <= @EndDate
)
SELECT A.YourDate,
ISNULL(B.Total,0) Total
FROM AllDays A
LEFT JOIN ( SELECT CONVERT(DATE,fechaingreso) YourDate,
COUNT(id_reg) Total
FROM vw_casos_tc
WHERE fechaingreso >= @StartDate
AND fechaingreso < DATEADD(DAY, 1, @EndDate)
GROUP BY CONVERT(DATE,fechaingreso)) B
ON A.YourDate = B.YourDate
OPTION(MAXRECURSION 0)

关于sql-server - 按日期零结果计数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16446131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com