Dateadd fout

Status
Niet open voor verdere reacties.

VendClasicc

Gebruiker
Lid geworden
25 feb 2015
Berichten
68
Dag allemaal,

Ben nog steeds bezig om mn database werkende te krijgen :P, loop nu denk ik tegen het laatste probleem aan.
Ik wil de volgende formule gebruiken: Select sum(Verkoop) From Query1 As B Where B.Adate Between A.Adate and DateAdd("m", (1-
Code:
), A.Adate)) AS SomVerkoop
Waarde Adate heeft de format 1-m-YYYY heeft en code gekoppeld is hieraan als maand nr. 1t/m12 [Code].

Nu wil ik de som weten van de verkoop van begin van het jaar daarom heb ik de functie 1-[code] gecreerd want dan begint hij te tellen vanaf het begin van het jaar. 
Echter werkt dit dus niet, heb al het een en ander getest als ik bijv. -4 invul voor "m" in de dateadd functie en vergelijken met de corresponderende 1-[code]. Hier komen dan verschillende waardes uit terwijl de uitkomst van 1-[code] gewoon -4 is. Ben er wel achter dat hij uiteindelijk gaat kijken naar een getal als 27-4-2013, blijkbaar trekt die dus de dagen eraf inplaats van de maanden door deze truc.....
Dit zou echt moeten kloppen, heb ook al verder gezocht op het internet maar kom er tot nu toe niet uit. 

Als iemand hier een oplossing voor heeft, hoor ik het graag :D!

Gr en alvast een fijne avond!
 
Laatst bewerkt:
Meer informatie.

Ik heb in de bijlage de resultaten van de gebruikte queries gezet en de hoofdtabel. Op advies van Octafish ben ik gaan werken met datum taal ipv cijfers als datum.
Het gaat uiteindelijke om de movingaverage query waarbij uitkomst van de dikgestrukte tekst overeen zou moeten komen met de gestreepte tekst.

MovingAverage Query SQL:
SELECT A.Period, A.Adate, A.Code, DateAdd("m",((1-(
Code:
)*-1)*-1),A.Adate) AS Bases[/B], DateAdd("m",-2,A.Adate) AS test, A.Verkoop, (Select sum(Verkoop) From Query1 As B Where B.Adate Between A.Adate and DateAdd("m", (1-[Code]), A.Adate)) AS MovingAverage, (Select sum(Verkoop) From Query1 As B Where B.Adate Between A.Adate and DateAdd[U]("m", -2, A.Adate)) [/U]AS MovingAverage2, 1-[Code] AS finaltest, [Adate]+([finaltest]) AS finaltest2
FROM Query1 AS A;

[B]Query1 SQL:[/B]
SELECT Table1.[period], Table1.Jaar, Table1.[Code], Table1.Verkoop, DateSerial(CLng(Left([Period],4)),CLng(Right([Period],2)),1) AS ADate
FROM Table1;

Dit is trouwens mijn eerste dag SQL.

Gr
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan