Avatar billede kornum Nybegynder
02. august 2006 - 15:42 Der er 4 kommentarer og
1 løsning

Krydstabulering hvor group by skal medtage null værdier.

Jeg vil gerne have sql sætningen til at gruppere alle de forskellige forekomster af personkred. Det virker sådan set fint indtil jeg indsætter where delen med FI>0. Nu kommer naturligvis kun de forekomster af personkred med FI>0 frem og det er netop dem jeg gerne vil tælle. Men samtidigt vil jeg gerne have alle forekomsterne af personkred, således alle de andre uden FI>0 bliver noteret med et 0. - Håber nogle kan være mig behjælplig, da jeg forgæves har forsøgt at finde hjælpe her og på google.


TRANSFORM Count(FI) AS AntalOfFI
SELECT personkred
FROM [Klientstatistik (Juni 05 - Frem)]
WHERE FI>0
GROUP BY personkred
PIVOT dato;







Jeg skal have den til at returnere null/nul, når der ikke er nogen counts i en gruppering. Flg. spørgsmål kører på helt samme problemstilling http://eksperten.dk/spm/50590, men jeg kan ikke få det til at virke :-( Formålet er at få opstillet en tabel, der har "intNavn" nedad og "done" henad (også kaldet krydstabulering) - og når der i en undergruppe IKKE er noget count, så skal der stå nul. Lige nu ødelægges strukturen, hvis der ikke er noget count i en undergruppe.
Avatar billede kornum Nybegynder
02. august 2006 - 15:42 #1
Ups der nederste sq vist ikk lige ha' været med :) - Så glem de sidste 4 linier :D
Avatar billede Slettet bruger
02. august 2006 - 23:22 #2
Kan du ikke bygge på en forespørgsel, hvor du har indsat nul med funktion nz?~)
Avatar billede kornum Nybegynder
03. august 2006 - 10:53 #3
Hmm har forsøgt mig... men lader ikke til at funke...

kan ligesom ikk få den til at tælle rigtigt... den tæller alle med 0 med så... det skal den jo ikke... count(feltet>0) burde vel funke så, men lader det ikke til :(
Avatar billede kornum Nybegynder
03. august 2006 - 11:40 #4
Problemet er i bund og grund at

TRANSFORM Count(FI) AS AntalOfFI

Kun skal tælle hvis FI er større en nul, ellers skal den bare returnere 0. Har forsøt med if osv. men lader ikk til at transform er så glad for det :(
Avatar billede kornum Nybegynder
03. august 2006 - 11:50 #5
Hey hey... så lykkes det sq endeligt!

Nedenfor giver mig 0 værdier hvor der ingen er og dermed kan mit group by holde formen ned af y-aksen... Derfor lukker jeg nu og tak for hjælpen spg, du ledte mig på rette vej mht null og count :)

TRANSFORM Count( IIf(([Klientstatistik (Juni 05 - Frem)].FI>0),1, null)) AS AntalOfFI
SELECT [Klientstatistik (Juni 05 - Frem)].personkred
FROM [Klientstatistik (Juni 05 - Frem)]
GROUP BY [Klientstatistik (Juni 05 - Frem)].personkred
PIVOT [Klientstatistik (Juni 05 - Frem)].dato;
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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