2011-07-03 3 views
1

J'ai une base de données avec une longue liste d'enregistrements. La plupart des colonnes ont des clés étrangères à d'autres tables.SQL Server - Regrouper par, avoir et compter dans un mélange

Exemple:

ID SectorId BranchId 
-- -------- -------- 
5 3  5 

Et puis je vais avoir une table avec les secteurs, branches ect.

Ma question:

Je veux savoir combien de dossiers qui a le secteur 1, 2, 3 ... n. Donc ce que je veux, c'est un group by Sector et puis quelques count(*) qui me diront combien il y en a de chaque.

Sortie prévue

Ainsi par exemple, si je 20 enregistre le résultat pourrait ressembler à ceci:

SectorId Count 
-------- ----- 
1  3 
2  10 
3  4 
4  6 

Mes tentatives jusqu'à

Je ne normalement pas travailler beaucoup avec des bases de données et j'ai essayé de résoudre ce problème pendant 1,5 heure. J'ai essayé quelque chose comme ceci:

SELECT COUNT(*) 
FROM Records r 
GROUP BY r.Sector 
WHERE r.Date BETWEEN '2011-01-01' AND '2011-12-31' 

Mais ... des erreurs et des problèmes partout!

J'apprécierais vraiment de l'aide. Je sais que c'est probablement très simple.

Merci!

Répondre

4

La séquence de votre requête est incorrecte; il devrait être comme ceci: -

SELECT COUNT(*) 
FROM Records r 
WHERE r.Date BETWEEN '2011-01-01' AND '2011-12-31' 
GROUP BY r.Sector 

La sortie sera seulement compte-à-dire

count 
----- 
3 
10 
4 
6 

Si vous voulez aller chercher les deux secteur et compter alors vous devez modifier la requête un peu

SELECT r.Sector, COUNT(*) as Count 
FROM Records r 
WHERE r.Date BETWEEN '2011-01-01' AND '2011-12-31' 
GROUP BY r.Sector 

La sortie sera comme ceci: -

Sector Count 
------ ----- 
1  3 
2  10 
3  4 
3  6 
+0

Merci beaucoup !!! :-) Cela m'a vraiment aidé! –

1

Votre requête était partiellement correcte, mais il a besoin de quelques modifications.

Si je vous écris cette façon: -

SELECT r.SectorID,COUNT(*) AS count 
FROM Records r 
WHERE r.Date BETWEEN '2011-01-01' AND '2011-12-31' 
GROUP BY r.SectorID 

Ensuite, la sortie sera: -

SectorID Count 
1   3 
2   10 
3   4 
4   6 
Questions connexes