Avatar billede jpi Mester
18. december 2007 - 10:09 Der er 6 kommentarer og
1 løsning

SQL-sætning fortsat

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

Resultat kan kun have værdierne 1, 2 eller 3 og derfor er antallet af kolonner i udtrækket konstant.

Jeg er kommet til følgende (med hjælp fra kabbak)

TRANSFORM Count(Test.Prøve) AS AntalOfPrøve
SELECT Test.Prøve
FROM Test
GROUP BY Test.Prøve
PIVOT Test.Resultat;

Resultater ser så således ud:
Prøve    Antal1    Antal2    Antal3
20          2        1          1
21                  1         

Hvordan får jeg nogle 0'er i de felter hvor der ingen er ?

Hvis jeg vælger at filterer på en prøve hvor der f. eks. kun er et tal i Antal2 bliver de andre kolonner slet ikke vist. Det vil jeg meget gerne af hensyn til en graf. Måske dette løses ved at have 0'er med ?
Avatar billede coderdk Praktikant
18. december 2007 - 10:16 #1
Det er fordi feltet er NULL... Hvilklen database er det? COALESCE returnerer det første ikke-null, i.e. COALESCE(NULL,0) returnerer 0...
Avatar billede jpi Mester
18. december 2007 - 10:24 #2
Det er Access. Jeg havde også gettet på at værdien er NULL, men jeg skla bruge et 0. Måske en replace-ting ??
Avatar billede kabbak Professor
18. december 2007 - 10:33 #3
Hvis du laver en nu forespørgsel baseret på den første

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;
Avatar billede jpi Mester
18. december 2007 - 10:39 #4
TRANSFORM IIf(IsNull(Count(Test.Prøve)),0,Count(Test.Prøve)) AS AntalOfPrøve
SELECT Test.Prøve
FROM Test
GROUP BY Test.Prøve
PIVOT Test.Resultat;

Det løser problemet med manglende 0'er, men ikke anden del af problemet...
Avatar billede jpi Mester
18. december 2007 - 10:43 #5
Havde ikke set at du havde svaret kabbak. Det løser begge problemer på en gang !!

læg et svar, det virker perfekt
Avatar billede kabbak Professor
18. december 2007 - 10:47 #6
et svar ;-))
Avatar billede jpi Mester
08. januar 2008 - 19:29 #7
Vi fortsætter her... :-)
http://www.eksperten.dk/spm/813559
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester