2009-05-09 8 views
4

J'ai trois instructions SELECT qui renvoient chacune un total, 'New Cases', 'Close Cases', 'Existing Cases'. Comment puis-je les combiner pour qu'ils soient renvoyés dans un jeu de résultats.SQL Combinaison de plusieurs résultats SELECT

c.-à-je besoin d'un tableau retourné avec 3 champs, « nouveaux cas », « ferme les cas » et « Cas existants » chacun avec un total de

SELECT  COUNT(CaseID) AS 'New Cases' 
FROM   dbo.ClientCase 
WHERE  (CaseStartDate >= CONVERT(DATETIME, '2009-01-01 00:00:00', 102)) 
    AND  (CaseStartDate <= CONVERT(DATETIME, '2009-03-31 00:00:00', 102)) 

SELECT  COUNT(CaseID) AS 'Closed Cases' 
FROM   dbo.ClientCase 
WHERE  (CaseClosedDate >= CONVERT(DATETIME, '2009-01-01 00:00:00', 102)) 
    AND  (CaseClosedDate <= CONVERT(DATETIME, '2009-03-31 00:00:00', 102)) 

SELECT  COUNT(CaseID) AS 'Existing Cases' 
FROM   dbo.ClientCase 
WHERE  (CaseStartDate <= CONVERT(DATETIME, '2009-03-31 00:00:00', 102)) 

Répondre

13

Comme vous comptez les mêmes données, vous pouvez faire en parallèle:

select 
    sum(case when CaseStartDate between '2009-01-01' and '2009-03-31' then 1 else 0 end) as [New Cases], 
    sum(case when CaseClosedDate between '2009-01-01' and '2009-03-31' then 1 else 0 end) as [Closed Cases], 
    sum(case when CaseStartDate <= '2009-03-31' then 1 else 0 end) as [Existing Cases] 
from 
    dbo.ClientCase 
+0

+1 pour avoir lu la question. Ce serait très efficace. –

+0

oui, c'est une bonne solution – codeulike

0

@Mitch, @Guffa .. Une bonne solution, mais afin d'obtenir le résultat correct, vous devez prendre les deux champs CaseStartDate et CaseClosedDate en considération. Par exemple. dans les nouveaux cas, si vous ne filtrez pas les données CaseClosedDate, vous n'obtiendrez pas le bon. de NewCases car il comptera encore dans les cas fermés aussi.

Désolé je dois poster comme réponse parce que je n'ai pas de réputation pour ajouter un commentaire.

+0

Eh bien, cela dépend si vous voulez «nouveaux cas» ou «nouveaux cas qui n'a pas encore été fermé». – Guffa

Questions connexes