Hi,
folgendes Problem:
Folgender
Query gibt mir diesen View aus:
SQL-Code:
DECLARE @columns
VARCHAR(8000)
SELECT @columns =
COALESCE(@columns + '
,[' + cast(Berufsbezeichnung
as varchar) + '
]',
'
[' + cast(Berufsbezeichnung
as varchar)+ '
]')
FROM Bewerbungskategorien
INNER JOIN (Berufe
INNER JOIN ZO_Beruf_Kategorie
ON Berufe.id_Berufe = ZO_Beruf_Kategorie.Berufnr)
ON Bewerbungskategorien.id_Kategorien = ZO_Beruf_Kategorie.Kategorienr
GROUP BY Berufsbezeichnung
DECLARE @
query VARCHAR(8000)
SET @
query = '
SELECT Kategorienr,Bewerbungsjahr,'+@columns+'
FROM Bewerbungskategorien INNER JOIN (Berufe INNER JOIN ZO_Beruf_Kategorie ON Berufe.id_Berufe = ZO_Beruf_Kategorie.Berufnr) ON Bewerbungskategorien.id_Kategorien = ZO_Beruf_Kategorie.Kategorienr
PIVOT
(
MAX(Berufsbezeichnung)
FOR Berufsbezeichnung
IN (' + @columns + '
)
) as p'
EXECUTE(@
query)
SQL-Code:
Kategorienr Jahr Bürokaufmann Eurokaufmann/-frau Industriekaufmann/-frau Informatikkaufmann/-frau
2 2008/2009 NULL Eurokaufmann/-frau NULL NULL
3 2008/2009 NULL NULL Industriekaufmann/-frau NULL
3 2008/2009 Bürokaufmann/frau NULL NULL NULL
4 2008/2009 NULL NULL NULL Informatikkaufmann/-frau
Jetzt möcht ich mir die Abfrage so anpassen, dass mir die Kategorienummern gruppiert werden, d. h. dass ich folgendes Ergebnis bekomme:
SQL-Code:
Kategorienr Jahr Bürokaufmann/frau Eurokaufmann/-frau Industriekaufmann/-frau Informatikkaufmann/-frau
2 2008/2009 NULL Eurokaufmann/-frau NULL NULL
3 2008/2009 Bürokaufmann/frau NULL Industriekaufmann/-frau NULL
4 2008/2009 NULL NULL NULL Informatikkaufmann/-frau
Wenn ich nach 'as p' noch "group by kategorienr ergänze, kommt folgender fehler:
Die 'p.Bewerbungsjahr'-Spalte ist in der Auswahlliste ungültig, da sie nicht in einer Aggregatfunktion und nicht in der GROUP BY-Klausel enthalten ist.
Wer weis wie ich das umgehen kann?
DANKE!!!