J'ai une déclaration SQL et j'aimerais que les mois de l'année soient combinés. Mon Voici ma sortie: p> requête code> est la fractionnement des mois et je ne peux pas comprendre ce que je fais mal.
3 Réponses :
Inclure le mois dans groupe par code> instruction. SELECT DATENAME(MONTH, hb_Disputes.OPENED) AS MonthName,
COUNT(CASE WHEN REV_CLS = 2 THEN 1 END) AS Commercial,
COUNT(CASE WHEN REV_CLS <> 2 THEN 1 END) AS Residential
FROM hb_Disputes CROSS JOIN
Users
WHERE (Users.TX_EMPLOYEE = 'Ian Mark') AND (YEAR(hb_Disputes.OPENED) = YEAR(GETDATE()))
GROUP BY
hb_Disputes.OPENED,
DATENAME(MONTH, hb_Disputes.OPENED)
@Ianmark Il y avait une faute de frappe, je l'ai corrigée. Veuillez réessayer.
groupe par exactement l'expression que vous souhaitez avoir une seule ligne pour chaque valeur dans le jeu de résultats.
SELECT DATENAME(MONTH, '2001-' + cast(DATEPART(MM, hb_Disputes.OPENED) as char(2)) +'-01' ) AS MonthName,
COUNT(CASE WHEN REV_CLS = 2 THEN 1 END) AS Commercial,
COUNT(CASE WHEN REV_CLS <> 2 THEN 1 END) AS Residential
FROM hb_Disputes CROSS JOIN
Users
WHERE (Users.TX_EMPLOYEE = 'Ian Mark') AND (YEAR(hb_Disputes.OPENED) = YEAR(GETDATE()))
GROUP BY DATEPART(MM, hb_Disputes.OPENED)
ORDER BY DATEPART(MM, hb_Disputes.OPENED)
J'ai déjà essayé cela avant et ça me donne les mois par ordre alphabétique, pas dans l'ordre d'un calendrier normal. Même si cela montrait 1,2,3 car les mois iraient bien, j'en ai juste besoin dans le bon ordre
Nom du mois nécessaire pour être supprimé et remplacé par des valeurs numériques:
SELECT MONTH (hb_Disputes.OPENED) AS MonthValue,
COUNT(CASE WHEN REV_CLS = 2 THEN 1 END) AS Commercial,
COUNT(CASE WHEN REV_CLS <> 2 THEN 1 END) AS Residential
FROM hb_Disputes CROSS JOIN
Users
WHERE (Users.TX_EMPLOYEE = 'Ian Mark') AND
(YEAR(hb_Disputes.OPENED) = YEAR(GETDATE()))
GROUP BY
MONTH (hb_Disputes.OPENED)