Calcul du backlog incident

Fermé
atchoum1411 Messages postés 2 Date d'inscription lundi 22 octobre 2018 Statut Membre Dernière intervention 22 octobre 2018 - 22 oct. 2018 à 11:49
atchoum1411 Messages postés 2 Date d'inscription lundi 22 octobre 2018 Statut Membre Dernière intervention 22 octobre 2018 - 22 oct. 2018 à 13:53
Bonjour à tous,

j'ai toujours eu des difficultés avec les heures en sql,

pourriez-vous m'aider sur ce sujet svp ?

j'aimerai trouver le résultat du nombre d'incidents par année et par mois.

Mon problème c'est que le champ backlog ne m'additionne pas le résultat obtenu entre l'année 2016 à l'année 2017.

étant donnée qu'en decembre 2016 j'ai 6 tickets, il devrait m'additionner 6 + le nombre d'incidents du mois de janvier 2017 3.

le resultat est 6 + 3 = 9


select
DATEPART(YYYY, I.CreatedDate) AS Year
, DATEPART(MM, I.CreatedDate) AS Month
, sum ( case
when i.Status_IncidentStatusId in (3,4,5,7,9,10,11,12,13)
THEN 1
ELSE 0
End) as [Opened Tickets]
, sum ( case
when i.Status_IncidentStatusId in (3,4,5,7,9,10,11,12,13,6,8)
THEN 1
ELSE 0
End) as [OpenCount Tickets]
, sum ( case
when i.Status_IncidentStatusId in (6,8)
THEN 1
ELSE 0
End) as [Closed Tickets]

, ( select sum ( case
when t.Status_IncidentStatusId in (3,4,5,7,9,10,11,12,13,6,8)
THEN 1
ELSE 0
End) - sum ( case when t.Status_IncidentStatusId in (6,8) THEN 1 ELSE 0 End)
from IncidentDimvw t

where Datepart(MM, t.CreatedDate) <= Datepart(MM, I.CreatedDate) and Datepart(YYYY, t.CreatedDate) <= Datepart(YYYY, I.CreatedDate)
and t.id is not null
and t.Classification_IncidentClassificationId <> 4

)as [BackLog Tickets]

from IncidentDimvw I
where i.id is not null
and i.Classification_IncidentClassificationId <> 4
group By DATEPART(YYYY, I.CreatedDate) , DATEPART(MM, I.CreatedDate)
order by DATEPART(YYYY, I.CreatedDate) , DATEPART(MM, I.CreatedDate) asc


A voir également:

1 réponse

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
22 oct. 2018 à 12:25
Bonjour,

where Datepart(MM, t.CreatedDate) <= Datepart(MM, I.CreatedDate) and Datepart(YYYY, t.CreatedDate) <= Datepart(YYYY, I.CreatedDate)

Ton problème ne viendrait-il pas du fait que tu compares séparément l'année et le mois ? (surtout le mois...)
Si tu es en Janvier .. le mois c'est 1 .... et le mois d'avant.. c'est 12 ...
Hors 12 n'est pas plus petit que 1 ... (tu le savais déjà je suppose :-) )

Il ne faut donc pas comparer l'année et le mois séparément mais ensemble.
Par exemple avec un truc du genre
FORMAT(t.CreatedDate, 'yyyyMM') <= FORMAT(I.CreatedDate, 'yyyyMM')

0
atchoum1411 Messages postés 2 Date d'inscription lundi 22 octobre 2018 Statut Membre Dernière intervention 22 octobre 2018
22 oct. 2018 à 13:53
merci, je vais regarder à cela.
0