Zitat Zitat von Fuerchau Beitrag anzeigen
Nein, das ist nicht vergleichbar, da hier komplette Zeilen vervielfältigt werden. Was du brauchst ist der selective Count:

count(case p1 when 101 then A3 else NULL)

Der Count zählt die Anzahl Sätze, in denen A3 nicht NULL ist.
Birgitta zählt unabhängig vom Inhalt.

count(case p1 when 101 then 1 else NULL)

käme auf das selbe heraus, da ich ja zählen will und keine Summe benötige. Aber das ist Geschmackssache.
Dies ist übrigens eine ähnliche Vorgehensweise wie beim SQL-Server die Pivot-Funktion.
Meine Antwort hat genau der Anforderung entsprochen!
Der Casus-Knacksus ist, dass die Werte aufgrund derer die Spalten gebildet werden sollten
a) nicht bekannt sind und sich
b) ändern können.

Deshalb habe ich mit die Row_Number() eine Dummy-Zuweisung gemacht, die Spalten aufgrund der Zuweisung gebildet und den Inhalt entsprechend abgezählt.
Dass es, sofern die Werte bekannt sind bessere Lösungen gibt steht außer Frage.

@Baldur: Wenn Du schon Beispiele zeigst sollte auch die Syntax korrekt sein. In beiden Case-Anweisungen fehlt das END!

Außerdem ist ELSE NULL der Default bei nicht gefunden, d.h. die Angabe ist optional.

Birgitta