365天滚动窗口SQL

问题描述 投票:1回答:1

第一个问题在这里。我试图在SQL中计算一个过去365天的滚动数字。我有以下公式。

    Select Count (*) ID
From HSE_Meldingen
Where ((Bedrijf IN ('BE Civiel','Be Mechanisch','BE Overig','BE Vijzel') And Datum_incident > DATEADD(DAY,-365,GETDATE()) and Soort_Melding = 'Letselongeval EHBO met doktersverzorging') 

现在我必须增加一些额外的内容 我想让这个公式回溯过去5年中的每一天的365天。因此,计算一个365天的滚动窗口,回顾5年。

我希望我已经解释的足够好。

sql-server select rolling-computation dateadd
1个回答
0
投票

我会创建一个日历表(你可以找到很多如何创建日历表的例子),然后把这个表JOIN到你的HSE_meldingen表。

例如

Select d.theDate, Count (*) ID
From AllDates d
LEFT JOIN HSE_Meldingen m
    ON m.HSE_Meldingen BETWEEN DATEADD(DAY,-365,d.TheDate) AND d.theDate 
    AND m.Bedrijf IN ('BE Civiel','Be Mechanisch','BE Overig','BE Vijzel') 
    and m.Soort_Melding = 'Letselongeval EHBO met doktersverzorging'
Where d.theDate > DATEADD(DAY,-365,GETDATE())
GROUP BY d.theDate
© www.soinside.com 2019 - 2024. All rights reserved.