7
votes

SQL Server Query Totaux mensuels

J'ai une requête qui totalise tous les cas actifs le 01/01/2010.

Month   Total
Jan     102
Feb     130
Mar     145
.....
Dec     162


2 commentaires

Pourriez-vous indiquer ce que vous essayez d'accomplir cette requête? Ma première pensée est que vous n'avez peut-être pas besoin de la table du calendrier et que vous pourriez plutôt utiliser des fonctions de date SQL (mois, année, etc.).


@Adrift - J'ai une variété de questions qui entraînent le nombre de cas ouverts au début d'un mois, combien de cas se sont fermés pendant un mois et combien ont été créés au cours d'un mois. Si vous regardez mon premier exemple ci-dessus, qui totalise les cas ouverts, cela fait ce que je veux, mais seulement pour le 1er janvier 2010. J'ai besoin des dates de la première requête pour itérer les 11 autres mois de l'année.


3 Réponses :


2
votes

supposant que le calendrier a deux colonnes telles que nose et firstdate , vous voulez S / chose comme xxx


0 commentaires

5
votes
SELECT cal.MonthName, COUNT(CaseID) AS Total 
FROM dbo.calendarTable cal
LEFT OUTER JOIN dbo.ClientCase cc
ON Month(cal.MonthStartDate) = Month(CaseStartDate)
WHERE 
(CaseStartDate <= CONVERT(DATETIME, cal.MonthStartDate, 102)) AND 
(CaseClosedDate >= CONVERT(DATETIME, cal.MonthStartDate, 102)) OR 
(CaseClosedDate IS NULL) 
GROUP BY cal.MonthName

Left outer join to ensure that you get all months including with 0 cases

1 commentaires

Votre réponse était la plus proche de ce dont j'avais besoin tant de merci pour votre aide.



1
votes

Vous pouvez simplement regrouper simplement le mois de la requête: xxx

qui devrait vous donner une sortie assez proche (mois numériques au lieu de janvier, février, etc. - mais assez proche) .

Avec cette étape supplémentaire, vous obtiendrez les trois premières lettres du nom de chaque mois: xxx


0 commentaires