ravika Skrevet 1. januar 2007 Del Skrevet 1. januar 2007 (endret) Prøver å sette opp en spørring som skal vise resultatet for et år fordelt på uker opp mot resultatet for år2 også fordelt på uker. Slik at Uke1.år1 minus Uke2.år2. Dermed får jeg differansen for hver uke. Til dette har jeg satt opp to spørringer: Resultat1 SELECT UkeÅr.Uke, Sum(NZ([Pris]*[Antall1],0)) AS [sum] FROM UkeÅr LEFT JOIN [Last] ON UkeÅr.UkeID = Last.UkeID GROUP BY UkeÅr.Uke, UkeÅr.År HAVING (((UkeÅr.År)=[Velg år])) ORDER BY UkeÅr.Uke; Resultat2 SELECT UkeÅr.Uke, Sum(NZ([Pris]*[Antall1],0)) AS [sum] FROM UkeÅr LEFT JOIN [Last] ON UkeÅr.UkeID = Last.UkeID GROUP BY UkeÅr.Uke, UkeÅr.År HAVING (((UkeÅr.År)=[Velg år2])) ORDER BY UkeÅr.Uke; Disse spørringene er identiske med untak av parameteret som gir muligheten til å spesifisere 2 ulike år. Problemet kommer når jeg skal sette disse to til en spørring som sammenlingner årene. Spørringen differanse SELECT Resultat1.Uke, Resultat1.Sum, Resultat2.Sum, Resultat1.Sum-resultat2.sum AS Differanse FROM Resultat1 INNER JOIN Resultat2 ON Resultat1.Uke = Resultat2.Uke; Har forsåvidt klart å sammenligne uke for uke, men vil i tillegg ha et felt som legger sammen differansen etterhvert som ukene går nedover. Slik at alle resultatene til og med denne uken vises. I uke 10 blir det da: Summen av differansen for alle ukene frem til uke 10. Er forresten Access jeg bruker... Har googlet litt og kommet frem til noe som jeg trodde skulle fungere, men får det ikke til å fungere: SELECT Differanse.Uke, Differanse.Resultat1.Sum, Differanse.Resultat2.Sum, Differanse.Differanse, Val(DSum("Differanse","Differanse","Uke<= " & [uke])) AS RunningSum FROM Differanse; Noen som ken forklare meg hvordan jeg kan lage en slik differanse tilnå? EDIT: Det viser seg etter diverse testing at det er parameterene som skaper problemer her... Funksjonen Val(DSum("Differanse","Differanse","Uke<= " & [uke])) krever å få oppgitt parameterne. Noen som vet hvordan jeg legger til de? Endret 1. januar 2007 av t0my Lenke til kommentar
roac Skrevet 2. januar 2007 Del Skrevet 2. januar 2007 Har ikke peiling på hva som er støttet i Access og ikke, men i SQL Server så er i hvert fall svaret enkelt: Cursor. Løpende aggregeringer er et av de få stedene hvor cursors faktisk er mest effektivt. Ref: Inside SQL Server 2005 - T-SQL Programming pp 118-122. Lenke til kommentar
ravika Skrevet 5. januar 2007 Forfatter Del Skrevet 5. januar 2007 Cursor er visst desverre ikke støttet i Access. En midlertidlig løsning ble å gjøre om parameterspørringene mine til en "statisk" spørring for hvert år. Tror det er DSUM funksjonen i: Val(DSum("Differanse","Differanse","Uke<= " & [uke])) som skaper trøbbel sammen med en parameterspørring. Er det noen som har en løsning på problemet som fungerer istedet for DSum? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå