Mere SQL
Fortsættelse på spm: http://www.eksperten.dk/spm/810849 og http://www.eksperten.dk/spm/810939Kort fortalt:
Jeg har følgdende data liggende i en tabel (Test):
ID Resultat Prøve
1 1 20
2 1 20
3 2 20
4 3 20
5 2 21
Jeg vil så gerne have det talt sammen så jeg får et udtræk der ser således ud:
Prøve Antal1 Antal2 Antal3
20 2 1 1
21 0 1 0
22 0 0 0
Dette gør jeg ved følgende:
TRANSFORM Count(Test.Prøve) AS AntalOfPrøve
SELECT Test.Prøve
FROM Test
GROUP BY Test.Prøve
PIVOT Test.Resultat;
og så køre en forespørgsel "over" den ovenstående:
SELECT Test_krydstabulering.Prøve, IIf(IsNull([1]),0,[1]) AS antal1, IIf(IsNull([2]),0,[2]) AS antal2, IIf(IsNull([3]),0,[3]) AS antal3
FROM Test_krydstabulering
Så kommer der 0'er med og alle kolonner fra den første vises.
MEN, hvis der ikke er nogen resultater med tallet 3 er der ikke nogen kolonne med 3 i den første sætning og så fejler sætning nr. 2.
Hvordan kan dette løses ?