Det drejer sig som udtræk fra en tabel med faktura liner. Tabel består af Varenr, Antal, dato
Udtrækket skal give følgende resultat i hver sin kollonne
Varenr, antal for perioden januar til marts2004, antal for perioden januar til marts2005, Antal for hele 2003, antal for hele 2004. Det skal være sorteret i varenummer orden.
Du kan bruge Case til at opnå hvad du ønsker. Jeg har ikke testet nedenstående SQL, så det er mulig du lige på justere en lille smule på den. Jeg blev lidt usikker på om datoen skal skrives: '2004-01-01' eller #2004-01-01#, men jeg tror den første fungerer. Prøv nedenstående, og skrive tilbage hvis den ikke fungerer.
SELECT VARENR, Sum(Marts2004YTD) as Marts2004YTD, Sum(Marts2005YTD) as Marts2005YTD, Sum(Tot2003) as Tot2003, Sum(Tot2004) as Tot2004 FROM ( SELECT varenr, case dato between '2004-01-01' and '2004-03-31' then Antal else 0 end as Marts2004YTD, case dato between '2005-01-01' and '2005-03-31' then Antal else 0 end as Marts2005YTD, case dato between '2003-01-01' and '2003-12-31' then Antal else 0 end as Tot2003, case dato between '2004-01-01' and '2004-12-31' then Antal else 0 end as Tot2004 FROM Tabel ) as T Order By varenr
Jeg har været på ferie så derfor har jeg ikke reageret på dit svar.
Jeg har prøvet dine foreslag af, men jeg er ny i sql programering, så jeg har nogle spørgsmål til dine forslag. Forslag 1: Hvordan kan Select sætningen se at det er antal den skal summere op, du selecter jo ikke feltet antal?
Forslag 2: Som jeg forstår en case sætning, så fungere den kun indtil at der er en sand udsagn så stopper den, og hvis det er korrekt, så vil den kun finde en post. Jeg har prøvet dit forslag af og her brokker den sig over between. Men bliver Marts2004YTD og de andre summeret op på denne måde?
Synes godt om
Ny brugerNybegynder
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.