Gå til innhold

Spørring i MySQL


Anbefalte innlegg

SELECT a.ArrID, SUM(b.AntBill) AS sumBestillt 
FROM Arrangement a, Bestilling b 
WHERE b.ArrID = a.ArrID  GROUP BY a.Tid;

 

Her prøver jeg å krysse to tabeller og setter krav på at det skal summeres på antall bestillinger der ArrID er lik på begge tabellene.

Men når jeg ikke har noen bestillinger så vil jeg at den skal returnere en sum på 0, noe som den ikke gjør og jeg får ut ingenting.

Hvordan kan jeg få dette til?

Lenke til kommentar
Videoannonse
Annonse

SELECT felt1, CASE felt2 WHEN '' THEN '0' ELSE felt2 END FROM tabell.

 

Eller du kan bruke if:

 

SELECT felt1, if(felt2 = '', '0', felt2) FROM tabell

men da er det lurt å legge til AS og gi den et navn.

 

Fordelen med CASE er at den bytter ut verdien som vises slik at du bruker resultatet akuratt som vanlig, den bytter bare ut '' med '0'. Du slipper f.eks. å gi den et navn.

Endret av ????????
Lenke til kommentar

SELECT a.ArrID, IF(SUM(b.AntBill)='','0',SUM(b.AntBill)) AS sumBestillt 
FROM Arrangement a, Bestilling b 
WHERE b.ArrID = a.ArrID  
GROUP BY a.Tid;

 

Slik har den blitt, men den skriver bare ut de som jeg har bestilling på.

Ser du noen som helst løsning?

Lenke til kommentar

Når du sier "skriver bare ut de som jeg har bestilling på" er det ikke lett å forstå når vi ikke vet hvordan tabellene dine ser ut ;)

 

Kommer det fortsatt ikke 0 der den ikke har noen verdi?

eller er problemet at de feltene ikke blir med i det hele tatt?

 

I så fall burde du kikke litt på, som jeg nevnte tidligere, metoden du joiner med. Bruk f.eks. LEFT JOIN hvis det er mulig,

Lenke til kommentar

Litt flaut men side du hadde så peiling så tar jeg meg den frihet å spørre igjen :)

 

IF(SUM(b.AntBill)='NULL','0',SUM(b.AntBill)) AS sumBestillt
IF(SUM(b.AntBill)='','0',SUM(b.AntBill)) AS sumBestillt

Ingen av disse typene vil gi sumBestillt verdien 0, den får bare verdien NULL.

 

Har du noe forslag?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...