Hur gör man för att summera över flera kolumner inom en CASE-sats? Vet inte om jag förstår vad du menar, det är inte såhär? Nej, tyvärr fungerar det inte, av någon anledning... :-( Men det är det jag vill uppnå och helst att man kan summera olika veckodagar för flera olika perioder till samma summa. Är det verkligen rätt att använda NULL i sum-satserna? NULL + någonting annat = NULL. Är du vänlig att tala om hur din datastruktur ser ut? Har du möjlighet att förändra datastrukturen? Hej! Tack för att ni har kollat på min fråga! Nu är det löst:Sum över flera kolumner i CASE-sats på SQL-Server?
DVS mandag + tisdag + ...? Jag har provat med + och med AND, men det fungerar inte. (På SQL-server)
Hur ska jag lösa det?
SQL = "SELECT projekt, SUM (CASE period WHEN 200501 THEN (tisdag) ELSE NULL END) AS "&_
"f_sum, SUM (CASE WHEN period BETWEEN 200502 AND 200503 THEN (tisdag) ELSE NULL END) AS "&_
"v_sum, SUM (CASE period WHEN 200503 THEN (tisdag) ELSE NULL END) AS "&_
"t_sum FROM tbl_timmar WHERE bolag = 'Bolaget' GROUP BY projekt"
Vore väldigt glad om jag får svar! :-)Sv: Sum över flera kolumner i CASE-sats på SQL-Server?
SUM(måndag+tisdag)
/JohanSv:Sum över flera kolumner i CASE-sats på SQL-Server?
Sv: Sum över flera kolumner i CASE-sats på SQL-Server?
Testa det här istället:
<CODE>
SQL = "SELECT projekt, SUM (CASE period WHEN 200501 THEN tisdag ELSE 0 END) AS "& _
"f_sum, SUM (CASE WHEN period BETWEEN 200502 AND 200503 THEN tisdag ELSE 0 END) AS "& _
"v_sum, SUM (CASE period WHEN 200503 THEN tisdag ELSE 0 END) AS "& _
"t_sum FROM tbl_timmar WHERE bolag = 'Bolaget' GROUP BY projekt"
</CODE>
Vad är period för datatyp? INT?Sv: Sum över flera kolumner i CASE-sats på SQL-Server?
Sv:Sum över flera kolumner i CASE-sats på SQL-Server?
Lösningen är
SQL = "SELECT projekt, SUM (CASE period WHEN 200501 THEN (tisdag+onsdag+torsdag+fredag+lordag+sondag) ELSE 0 END) +SUM (CASE WHEN period >= 200502 AND period <= 200503 THEN (mandag+tisdag+onsdag+torsdag+fredag+lordag+sondag) ELSE 0 END) +
SUM (CASE period WHEN 200503 THEN (tisdag+onsdag) ELSE 0 END) AS
summa FROM tbl_timmar WHERE bolag = 'Bolaget' GROUP BY projekt"
Tack Johan och Per för era lösningar!