Avatar billede flemmingbp Nybegynder
02. marts 2005 - 15:24 Der er 2 kommentarer

Stored procedure til statistik

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.
Avatar billede lorentsnv Nybegynder
03. marts 2005 - 09:46 #1
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
Avatar billede flemmingbp Nybegynder
21. marts 2005 - 14:55 #2
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?
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester