[SQL/SQL Server] Date maximale pour calcul suivant une cat/agent
Date maximale pour calcul suivant une cat/agent [SQL/SQL Server] - SQL/NoSQL - Programmation
MarshPosté le 24-03-2015 à 08:37:04
Bonjour à tous !
J'écris ce message car j'ai une requête SQL à faire afin de faire un extract dans une base de données. Je m'explique, il y a plusieurs agents, ces agents gèrent des litiges, chaque litige a un état (par exemple : ouvert, en cours, clos, et j'en passe), et UN litige passe par plusieurs états, ce qui crée plusieurs ligne pour un litige. Ce que je dois faire : Un extract où, je vais chercher chaque agent, et pour chaque état de litige je doit trouver combien à ce jour sont à cette état. Pour cela je dois donc, par litige, prendre la dernière date. Mon problème : Ca m'affiche bien tous les agents, avec les état, mais pour le moment, chaque à état se voit attribuer le même nombre. De plus, j'ai mis en commentaire mes tentatives de MAX(date) car ca fausse le résultat, voir parfois ne marche plus.
Voici ma requête pour le moment :
SELECT distinct(CH.SVC_RESP_USER_NAME), S.CODE, COUNT(S.CODE) as 'Nombre de complaints' ----------- Respectivement : Nom de l'agent, intitulé de l'état, et nombre de litige à cet état.
FROM dbo.COMPLAINT_HEADER CH, dbo.ORM_STATUT OS, STATUT S, dbo.ORM O
WHERE OS.STATUT_ID = S.ID AND CH.ORG_CODE = O.ORG_CODE AND O.ID = OS.ORM_ID
AND OS.ADD_DATE >= '2014-06-01'
----------COMMENTAIRE---------------------------------------------------------------------- --AND OS.ADD_DATE = (SELECT MAX(ADD_DATE) -- FROM ORM_STATUT) --AND OS.STATUT_ID = (SELECT STATUT_ID -- FROM dbo.ORM_STATUT OS -- WHERE OS.ADD_DATE =(SELECT MAX(ADD_DATE) -- FROM dbo.ORM_STATUT)) -------------------------------------------------------------------------------------------------
GROUP BY SVC_RESP_USER_NAME, S.CODE,OS.ID
J'espère avoir étais clair même si j'avoue que ce n'est pas facile à expliquer et que vous pourrez m'aider !
Message édité par serialchaos le 24-03-2015 à 08:38:46
Marsh Posté le 24-03-2015 à 08:37:04
Bonjour à tous !
J'écris ce message car j'ai une requête SQL à faire afin de faire un extract dans une base de données. Je m'explique, il y a plusieurs agents, ces agents gèrent des litiges, chaque litige a un état (par exemple : ouvert, en cours, clos, et j'en passe), et UN litige passe par plusieurs états, ce qui crée plusieurs ligne pour un litige. Ce que je dois faire : Un extract où, je vais chercher chaque agent, et pour chaque état de litige je doit trouver combien à ce jour sont à cette état. Pour cela je dois donc, par litige, prendre la dernière date. Mon problème : Ca m'affiche bien tous les agents, avec les état, mais pour le moment, chaque à état se voit attribuer le même nombre. De plus, j'ai mis en commentaire mes tentatives de MAX(date) car ca fausse le résultat, voir parfois ne marche plus.
Voici ma requête pour le moment :
SELECT distinct(CH.SVC_RESP_USER_NAME), S.CODE, COUNT(S.CODE) as 'Nombre de complaints' ----------- Respectivement : Nom de l'agent, intitulé de l'état, et nombre de litige à cet état.
FROM dbo.COMPLAINT_HEADER CH, dbo.ORM_STATUT OS, STATUT S, dbo.ORM O
WHERE OS.STATUT_ID = S.ID
AND CH.ORG_CODE = O.ORG_CODE
AND O.ID = OS.ORM_ID
AND OS.ADD_DATE >= '2014-06-01'
----------COMMENTAIRE----------------------------------------------------------------------
--AND OS.ADD_DATE = (SELECT MAX(ADD_DATE)
-- FROM ORM_STATUT)
--AND OS.STATUT_ID = (SELECT STATUT_ID
-- FROM dbo.ORM_STATUT OS
-- WHERE OS.ADD_DATE =(SELECT MAX(ADD_DATE)
-- FROM dbo.ORM_STATUT))
-------------------------------------------------------------------------------------------------
GROUP BY SVC_RESP_USER_NAME, S.CODE,OS.ID
J'espère avoir étais clair même si j'avoue que ce n'est pas facile à expliquer et que vous pourrez m'aider !
Message édité par serialchaos le 24-03-2015 à 08:38:46