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
3 Réponses :
supposant que le calendrier a deux colonnes telles que nose code> et firstdate code>, vous voulez S / chose comme
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
Votre réponse était la plus proche de ce dont j'avais besoin tant de merci pour votre aide.
Vous pouvez simplement regrouper simplement le mois de la requête: qui devrait vous donner une sortie assez proche (mois numériques au lieu de janvier, février, etc. - mais assez proche) . P> Avec cette étape supplémentaire, vous obtiendrez les trois premières lettres du nom de chaque mois: p>
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.