En af mine kolleger spurgte mig forleden om, hvordan man med SQL kan lave delsummer. Det gav mig straks en ide. Normalt bruger jeg GROUP BY til at lave delsummer og deloptællinger, men det kan faktisk godt gøres på en anden måde. Forestil dig, at du vil optælle antallet af danske kunder og udenlandske kunder. I din kundetabel har du en kolonne kaldet COUNTRYCODE, som indeholder to bogstavs ISO-koden for kundens hjemland. En sådan optælling opdelt i gruppen danske kunder og alle de andre er faktisk ret svær at lave i et SQL kald med almindelig GROUP BY. Enten skal man lave to SQL kald, hvor det ene optæller danske kunder og det andet alle de andre. Men man kan faktisk klare det med et SQL-kald således:
Ved hjælp af samme trick er det muligt at lave eksempelvis delsummer inden for grupper. Forestil dig en virksomhed, der sælger varer både via internettet og i butikker. Nu vil virksomheden finde ud af hvordan fordelingen af omsætningen på de forskellige varegrupper er totalt set og mellem internettet og butikkerne. Det kan gøres således:
Bemærk, at hvis der findes andre kanaler end SHOP og INTERNET, så vil SHOP + INTERNET være mindre end TOTAL, vel at mærke hvis der har været nogen omsætning i kanalen. Jeg håber, at disse to eksempler vil give dig inspiration til at udnytte CASE i forbindelse med SUM for problemstillinger, der er relevante for dig.