Per kwartaal krijgt de klant een factuur echter betaald hij per maand, nu zou ik graag vanuit 1 query de omzet per kwartaal willen berekenen.
Het probleem waar ik tegen aan loop is dat sommige klanten starten binnen het kwartaal en dus niet de volledige 3 maanden hoeven te betalen (voorbeeld 1).
Daarnaast heb je ook klanten die geen klant maar willen zijn en stoppen binnen een kwartaal die dus niet het volledige kwartaal hoeven te betalen (voorbeeld 2).
Voorbeeld 1:
Klant A start in februari
Facturatie 1e kwartaal voor klant A wordt dan 2 maanden (februari, maart).
Facturatie 2e kwartaal voor klant A wordt dan de 3 volledige maanden (april, mei, juni)
Voorbeeld 2:
Klant B wil zijn abonnement stop zetten per 1 mei.
Facturatie 2e kwartaal voor klant B wordt dan 1 maand (april)
De svelden die ik nu in mijn query heb zijn de volgende (gebasseerd op de tabel klanten):
[Idklant]
[Naam]
[Startdatum]
[Stopdatum]
[Prijs pm incl] -----vereenvoudigd veld in de db wordt de prijs op basis van meerdere velden berekend gezien de klant op basis van aantal gebruikers het maandbedrag betaald------
Datum vandaag: (Now())
Aantal mnd klant: DateDiff("m",[startdatum],[datum vandaag])
Prijs kwartaal incl: [Prijs pm incl]*[aantal mnd klant]
---------------------Zou dan gebasseerd zijn dat ik de query selectie doe op het kwartaal b.v. >#3/31/2015# And <#6/30/2015#---------------------
Aantal mnd tot stop: DateDiff("m",[stopdatum],[datum vandaag])
Test: [aantal mnd klant]-[aantal mnd tot stop]
test2: [Prijs p/m incl]*[test]
test3: [Prijs kwartaal incl]-[test2]
test3: [Prijs kwartaal incl]-[test2]
Aantal klantentotaal: DCount("[Naam]","[klanten]","[naam]=True") ------ deze geeft altijd het totaal weer ondanks de filter die bij [prijs kwartaal incl] is aangebracht
Ik heb het idee dat ik in de buurt ben van de oplossing, echter mis ik volgens mij iets heel kleins. Dacht er zelf aan om 4 extra velden toe te voegen aan de query waarbij ik de datums op geef van de eind kwartalen dus [kwartaal1] 30-mrt-2015, [kwartaal2] 31-jul-2015, [kwartaal3] 31-okt-2015 en [kwartaal4] 31-12-2015 en dan extra berekende velden aan te maken die de maanden dan berekenen.
Ook waar ik aan zat te denken is bij het aantal maanden klant om hier een criteria(filter) op te zetten van <3 mnd gezien een kwartaal 3 maanden duurt en je op deze manier ook de klanten er uit vangt die maar 2 maanden in dat kwartaal het systeem hebben gebruikt. Waar ik tegen aan loop is dat ik dan de gebruikers die gestop zijn er niet uit krijg.
Heb het idee dat ik te moeilijk denk dus ik ben echt opzoek naar iemand die mij hier mee kan helpen aan een oplossing. Wellicht is dit al een keer eerder aan bod gekomen op het forum ik kon het echter niet vinden in combinatie met nieuwe klanten en klanten die opzeggen.
ps. In de bijlage een voorbeeld van de database, ik heb de Engelse versie van AccessBekijk bijlage Voorbeeld db.zip
Het probleem waar ik tegen aan loop is dat sommige klanten starten binnen het kwartaal en dus niet de volledige 3 maanden hoeven te betalen (voorbeeld 1).
Daarnaast heb je ook klanten die geen klant maar willen zijn en stoppen binnen een kwartaal die dus niet het volledige kwartaal hoeven te betalen (voorbeeld 2).
Voorbeeld 1:
Klant A start in februari
Facturatie 1e kwartaal voor klant A wordt dan 2 maanden (februari, maart).
Facturatie 2e kwartaal voor klant A wordt dan de 3 volledige maanden (april, mei, juni)
Voorbeeld 2:
Klant B wil zijn abonnement stop zetten per 1 mei.
Facturatie 2e kwartaal voor klant B wordt dan 1 maand (april)
De svelden die ik nu in mijn query heb zijn de volgende (gebasseerd op de tabel klanten):
[Idklant]
[Naam]
[Startdatum]
[Stopdatum]
[Prijs pm incl] -----vereenvoudigd veld in de db wordt de prijs op basis van meerdere velden berekend gezien de klant op basis van aantal gebruikers het maandbedrag betaald------
Datum vandaag: (Now())
Aantal mnd klant: DateDiff("m",[startdatum],[datum vandaag])
Prijs kwartaal incl: [Prijs pm incl]*[aantal mnd klant]
---------------------Zou dan gebasseerd zijn dat ik de query selectie doe op het kwartaal b.v. >#3/31/2015# And <#6/30/2015#---------------------
Aantal mnd tot stop: DateDiff("m",[stopdatum],[datum vandaag])
Test: [aantal mnd klant]-[aantal mnd tot stop]
test2: [Prijs p/m incl]*[test]
test3: [Prijs kwartaal incl]-[test2]
test3: [Prijs kwartaal incl]-[test2]
Aantal klantentotaal: DCount("[Naam]","[klanten]","[naam]=True") ------ deze geeft altijd het totaal weer ondanks de filter die bij [prijs kwartaal incl] is aangebracht
Ik heb het idee dat ik in de buurt ben van de oplossing, echter mis ik volgens mij iets heel kleins. Dacht er zelf aan om 4 extra velden toe te voegen aan de query waarbij ik de datums op geef van de eind kwartalen dus [kwartaal1] 30-mrt-2015, [kwartaal2] 31-jul-2015, [kwartaal3] 31-okt-2015 en [kwartaal4] 31-12-2015 en dan extra berekende velden aan te maken die de maanden dan berekenen.
Ook waar ik aan zat te denken is bij het aantal maanden klant om hier een criteria(filter) op te zetten van <3 mnd gezien een kwartaal 3 maanden duurt en je op deze manier ook de klanten er uit vangt die maar 2 maanden in dat kwartaal het systeem hebben gebruikt. Waar ik tegen aan loop is dat ik dan de gebruikers die gestop zijn er niet uit krijg.
Heb het idee dat ik te moeilijk denk dus ik ben echt opzoek naar iemand die mij hier mee kan helpen aan een oplossing. Wellicht is dit al een keer eerder aan bod gekomen op het forum ik kon het echter niet vinden in combinatie met nieuwe klanten en klanten die opzeggen.
ps. In de bijlage een voorbeeld van de database, ik heb de Engelse versie van AccessBekijk bijlage Voorbeeld db.zip