Citat:
Ursprungligen postat av
PN
Jag har en tabell enligt följande:
datum date,
completeness int
I tabellen kan det finnas flera rader med ett datum och värdet 0. Varje sådan rad betyder ett misslyckande. Likaså finns det rader med ett datum och värdet 100 som betyder lyckad.
Så finns det t ex 5 st rader, '2018-02-11' | 0 så betyder det fem misslyckanden det datumet, medan om det står 4 st '2018-02-12' | 100 så betyder det att det har varit 4 st lyckande det datumet.
Nu vill jag räkna ihop dessa värden och få en tabell som ser ut som:
Datum | Misslyckanden | Lyckanden
--------------------------------------
2018-02-11 | 5 | 0
2018-02-12 | 0 | 4
Hur gör man det?
Nåt sånt här?
Kod:
SELECT datum,ISNULL( tab1.num,0) AS Success, ISNULL(tab2.num,0) AS Rejects
FROM
tab
LEFT OUTER JOIN(
SELECT datum, COUNT(*) AS num
FROM tab
WHERE completeness=1
GROUP BY datum) tab1 ON tab1.datum = tab.datum
LEFT OUTER JOIN(
SELECT datum, COUNT(*) AS num
FROM tab
WHERE completeness=0
GROUP BY datum) tab2 ON tab2.datum = tab.datum
ORDER BY tab.datum
"tab" får du givetvis byta mot det riktiga tabellnamnet, ISNULL är sql server-syntax, tror den heter IFNULL i mysql.