Как найти непрерывные периоды данных с нулевым значением по периоду даты в T-SQL - PullRequest
0 голосов
/ 05 июня 2019

Мне нужно найти непрерывные периоды данных с нулевым значением, превышающие 14 дней, в моей таблице базы данных и пометить их для внимания с помощью SQL

Я использую SQL Server 2016. Мои данные поступают в периодах даты и времени, который я свел к суммированию по дням.Я пометил дни с нулевыми значениями, но мне нужно, чтобы SQL циклически проходил по датам, выбирал непрерывные периоды больше 14 дней и предоставлял флаг столбца, как предупреждение.Когда ненулевые данные добавляются после этого, он сбрасывает флаг, а затем добавляет их снова, когда находит следующий период нулевых данных.

SELECT MeterID,
    DT,
    case
        when cast(DT as date) >= cast(dateAdd(day,-14, GetDate()) as date) then 'No'
        when cast(DT as date) < cast(dateAdd(day,-14, GetDate()) as date) and sum(VolumeL) > 0 then 'No'
        else 'Yes' end as ZeroDayValue,
        sum(VolumeL) as TotVolume
FROM "DWS_Leakage_Dev".PIT.MeterData15
where cast(DT as date) >= '2017-01-01' and cast(DT as date) <= getDate()
group by MeterID, DT
order by DT desc

Мне нужен SQL, чтобы пройти через весь набор данных и отмечать периоды, превышающие 14 дней непрерывных данных с нулем, по метрике, и я не знаю, как написать этот SQL.

...