SQL Daten Mehrfach nach Kriterium zählen

###Zaunpfahl###

Lt. Commander
Registriert
Jan. 2010
Beiträge
1.664
Daten Mehrfach nach Kriterium zählen / Kreuztabelle / multiple counts

seers cbler

hab folgendes problem
bisherige abfrage:

SELECT [Name],


count (ID) FROM ABC
where ID='a'
group by [Name]

GO


Tabellenname: ABC
mit Spalte Name und ID

(MS SQL)
Die bisherige Abfrage funktioniert auch ganz gut.
Für die ganzen Namen bekomme ich die Anzahl für dieses Kriterium

Allerdings gibts mehr Kriterien also nicht nur a sondern auch b, u....etc.
und die sollen genauso gezählt werden

problem ist wie bekomm ich das alles in die eine query, ich schaffs einfach nicht das mir der zweite count dann mit z.b. ID='b' als dritte Spalte Ausgegeben wird (mom. Ausgabe: 1. Spalte Name 2. Spalte count von 'a')

Das einzige was funktioniert hat ist mit einem nochmaligen select das ganze nochmal, aber dann hab ich letztenendes mehrere queries, ich will aber nur eine haben und jeder count mit seinem kriterium soll seine eigene spalte bekommen


hoff ich habs so verständlich erklärt
 
Zuletzt bearbeitet:
Unter Oracle wäre es:
SELECT Name,ID,COUNT(*) from ABC group by Name,ID;

Ob das so oder so ähnlich bei MS SQL auch geht, kann ich nicht versprechen.
 
funktioniert, danke

allerdings ist es nicht ganz das was ich wollte
denn jetzt hab ich die spalte ID mit den ganzen variablen und dazu dann die jeweilige anzahl

besser wäre es wenn die Variablen als Spaltenname auftauchen, dann würden die "Namen" nicht mehrfach auftreten
Ergänzung ()

habs geschafft :)

vielen dank durch deine hilfe bin ich erst auf die idee gekommen nach kreuztabelle zu googlen
http://www.ardiman.de/datenbanken/sql-server/kreuztabellenabfragen.html
Ergänzung ()

SELECT Name,



A=SUM((CASE ID WHEN 'A' THEN 1 ELSE 0 END)),
B=SUM((CASE ID WHEN 'B' THEN 1 ELSE 0 END)),
C=SUM((CASE ID WHEN 'C' THEN 1 ELSE 0 END))

FROM ABC
group by Name

GO
 
Zuletzt bearbeitet:

Ähnliche Themen

Zurück
Oben