Gå til innhold

Spørring for differanse hittill


Anbefalte innlegg

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 av t0my
Lenke til kommentar
Videoannonse
Annonse

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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...