Avatar billede madiedk Nybegynder
06. august 2008 - 12:42 Der er 8 kommentarer og
2 løsninger

sql forspørgsel med "0" hvis tom

Hej

jeg har en forespørgsel:

  AlleSkyldigeOmkostninger.Open "SELECT BOGFPOST.BOGF_KTO, Sum(BOGFPOST.BLB_AFD) FROM INV.BOGFPOST BOGFPOST WHERE (BOGFPOST.BOGF_KTO In ('325000','210706')) AND (BOGFPOST.PORTEFOELJE='" & afd & "') AND (BOGFPOST.BOGF_DATO>={ts '2008-01-01 00:00:00'}) GROUP BY BOGFPOST.BOGF_KTO", invcon, adOpenStatic
   
problemet er at hvis der ikke er registereret noget på konto 210706 men kun 325000 så kommer der kun en record, men jeg vil gerne have så der kommer 2 records, men så at der bare står 0 ved konto 210706 hvis den er tom. hvordan?
Avatar billede 2c Nybegynder
06. august 2008 - 12:51 #1
Altså, så hvis der i BOGFPOST tabellen ikke står 210706 nogen steder i BOGF_KTO kollonnen?
Avatar billede madiedk Nybegynder
06. august 2008 - 12:58 #2
ja, altså der står 210706 i BOGF_KTO men ingen steder i BOGFPOST
Avatar billede 2c Nybegynder
06. august 2008 - 13:09 #3
Ok. Jeg er stadig lidt i tvivl om hvad du spørger om.

Du har vel en tabel der hedder BOGFPOST ?
Hvilket felt i den tabel, er det der skal være tom før at problemet opstår? Er det BOGFPOST.BLB_AFD?

Hvis det er, kan nedestående måske løse problmet.
Sum(BOGFPOST.BLB_AFD)
Erstat:
Sum(coalesce( BOGFPOST.BLB_AFD,0))
Avatar billede 2c Nybegynder
06. august 2008 - 13:10 #4
Jeg mente: Erstat
Sum(BOGFPOST.BLB_AFD)
Med
Sum(coalesce( BOGFPOST.BLB_AFD,0))
Avatar billede kjulius Novice
06. august 2008 - 20:15 #5
Du har sikkert en tabel med dine kontoer (altså en tabel, hvor der er én række for hver konto). Den skal du bruge som udgangspunkt, og så lave en LEFT JOIN på kontonummeret til din tabel med poster. Noget ala:

SELECT konti.konto, SUM(BOGFPOST.BLB_AFD)
FROM konti
LEFT JOIN INV.BOGFPOST BOGFPOST ON konti.konto = BOGFPOST.BOGF_KTO
WHERE (konti.konto IN ('325000','210706'))
  AND ((BOGFPOST.PORTEFOELJE IS NULL) OR (BOGFPOST.PORTEFOELJE='" & afd & "'))
  AND ((BOGFPOST.BOGF_DATO IS NULL) OR (BOGFPOST.BOGF_DATO>={ts '2008-01-01 00:00:00'}))
GROUP BY konti.konto
Avatar billede madiedk Nybegynder
09. august 2008 - 13:30 #6
tak, jeg har først mulighed for at prøve det tidligst i slutningen af næste uge, så vender jeg lige tilbage
Avatar billede kjulius Novice
03. oktober 2008 - 13:17 #7
Har du haft tid til at kigge på det?
Avatar billede madiedk Nybegynder
18. december 2008 - 23:52 #8
Hej igen,jeg fik aldrig kigget på det igen. men giver gerne point for jeres indsats. smid et svar
Avatar billede 2c Nybegynder
19. december 2008 - 07:54 #9
Ok :-)
Avatar billede kjulius Novice
19. december 2008 - 17:34 #10
Hermed smidt! :-)
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