Я настраиваю отчет для системных сбоев.В отчете должны быть указаны системные сбои по системам за каждый месяц года, даже если нет сбоев, я все еще хочу 0.
Вот несколько работающий запрос:
with Months as (
select dateadd(month,datediff(month,0,getdate()) - n, 0) MonthDate
from (values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11))dt(n))
SELECT
m.MonthDate,
C.Name,
Count(*) as 'Count'
from
Months m
LEFT OUTER JOIN Incident I
on (m.MonthDate = DATEADD(MONTH, DATEDIFF(MONTH,0,i.CreatedDateTime),0))
Inner JOIN CI C on C.RecId = I.SystemName_Valid
WHERE
I.CreatedDateTime >= DATEADD(MONTH,-11,GETDATE())
GROUP BY
m.MonthDate, C.Name
Результаты показывают только даты, когда имеются системные сбои.
Я ожидаю, что результат будет похож на следующий
MonthDate Name Count
1/1/2019 System1 0
1/1/2019 System2 0
1/1/2019 System3 0
1/1/2019 System4 0
2/1/2019 System1 0
2/1/2019 System2 0
2/1/2019 System3 0
2/1/2019 System4 1
3/1/2019 System1 1
3/1/2019 System2 0
3/1/2019 System3 0
3/1/2019 System4 0
4/1/2019 System1 0
4/1/2019 System2 0
4/1/2019 System3 0
4/1/2019 System4 0
Набор данных, который возвращается, хотя
MonthDate Name Count
2/1/2019 System4 1
3/1/2019 System1 1