Avatar billede bhn.314 Nybegynder
21. januar 2005 - 10:17 Der er 3 kommentarer og
1 løsning

Fikse 10-NULL=NULL

Jeg har et problem når der bliver regnet med NULL, eksempelvis bliver 10-NULL=NULL i stedet for 10-NULL=10, hvordan fikser man det i en query? Her er data og forespørgsel:

ORGANISATION
organisation_id | id | antal
222 | 10 | 5
222 | 20 | 2
333 | 10 | 2

STOCK
organisation_id | id | nummer
333 | 10 | 45312
333 | 10 | 45313
333 | 10 | 45314

FORESPØRGSEL
SELECT allocated, onstock, (allocated-onstock) AS to_be_used
FROM  (
    SELECT antal AS allocated, organisation_id
    FROM  organisation
    GROUP BY organisation_id, id
        ) a
LEFT JOIN
    (
    SELECT count(id) AS onstock, organisation_id
    FROM  stock
    GROUP BY id
    ) b
USING (organisation_id);


Giver noget i retning af:
allocated | onstock | to_be_used
5 | 3    | 2
2 | NULL | NULL
2 | NULL | NULL

??????
Avatar billede arne_v Ekspert
21. januar 2005 - 10:23 #1
erstat:

  feltnavn

med:

  IFNULL(feltnavn, 0)
Avatar billede bhn.314 Nybegynder
21. januar 2005 - 10:57 #2
Det er en MySql funktion der IKKE findes i postgresql, desværre....
Avatar billede bhn.314 Nybegynder
21. januar 2005 - 11:04 #3
...Jo, der er jo coalesce(onstock, 0). Genialt. Tak. Smid et svar og få point
Avatar billede arne_v Ekspert
21. januar 2005 - 11:07 #4
ok (selvom jeg nok er lidt lost)
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