Records selecteren van de laatste 12 volledige maanden

Status
Niet open voor verdere reacties.

Marcel57

Gebruiker
Lid geworden
24 apr 2007
Berichten
13
Beste Mensen,

Ik heb een tabel waarin een counter loopt van afgehandelde zaken.

De startdatum is altijd de 1e van een maand.

Nu wil ik een selectie maken van de afgelopen volledige maanden.

Het ziet er ongeveer zo uit.

client counterstart countertick
1 01-01-2007 31
2 01-01-2007 2
1 01-02-2007 5
2 01-02-2007 6
enz

De reden waarom ik alleen de gegevens van de laatste volledige 12 maanden wil selecteren is omdat de counter van de huidige maand nog loopt.

heeft iemand een oplossing?


Alvast bedankt
Marcel
 
Hallo Marcel,

paar vraagjes.

Als je op de laatste dag van een maand een overzicht maakt, telt deze maand dan als "voledig"?
Wil je je overzicht altijd voor 12 maanden draaien of zou het kunnen voorkomen / gewenst zijn dat je flexibel wilt zijn in het aantal maanden?

Groet,

Tardis
 
Reactie op vraag van Tardis

Hoi Tardis,

1- Als ik nu een rapportage wens moet ik deze draaien over de periode 01-06-2006 t/m 31-05-2007. De huidige maand mag dus niet meetellen omdat de tellers voor deze maand nog gevuld worden.

2- Normaal gesproken gaat het altijd over een periode van de voorgaande 12 maanden maar als het mogelijk is om hierin fexibel te zijn dan is dat welkom.

Tevens heb ik nog een extra vraag. Momenteel heb ik middels een kruistabelquery de gegevens per maand op geteld. In de kolomkop zie ik dan de maand staan maar ik zou er graag het jaartal bij zien (mmm-yyyy)

Ik zit momenteel op mijn werk en heb een gedeelte van de datbase gezipt en als bijlage bijgevoegd

Ik hoor graag van je
groet Marcel
 

Bijlagen

Hallo Marcel,

voeg even een bijlage toe in Access 2000 formaat.

Groet,

Tardis
 
Hallo Marcel,

maak een nieuwe query en ga naar het SQL weergavevenster.
Plak daar dit SQL statement in en sla de query op:

Code:
TRANSFORM Sum(dbo_v_counter_category_client_total.counter_tick) AS SomVancounter_tick
SELECT dbo_v_counter_category_client_total.own_num, Sum(dbo_v_counter_category_client_total.counter_tick) AS [Totaal counter_tick]
FROM dbo_v_counter_category_client_total
WHERE (((dbo_v_counter_category_client_total.counter_start) Between DateSerial(Year(Date()),Month(Date()),0) And DateSerial(Year(Date()),Month(Date())-12,1)))
GROUP BY dbo_v_counter_category_client_total.own_num 
PIVOT Format([counter_start],"yyyy mm");

Wellicht dat je de komma's in de gebruikte funkties moet vervangen door puntkomma's.
Kolomkoppen moet je in het format yyyy mm zetten, niet in mmm zoals je nu hebt gedaan (daarmee haal je immers alle gegevens op)

Als je een overzicht wilt kunnen maken over een willekeurige periode, maak dan een formulier waarin je jaar vanaf, maand vanaf, jaar tot (en met) en maand (tot en met) kunt selekteren.
Query pas je dan aan door de geselekteerde waardes als WHERE clause (kondities) op te nemen.

Groet,

Tardis
 
Tellers

Hoi Tardis,

Bedankt werkt perfekt op een geimpoteerde tabel maar zodra ik hem wil draaien op een gekoppelde tabel dan geeft de query geen gegevens.

Ik heb het volgende gedaan.

Eerst de tabel gekoppeld, Daarna een kruistabel query aangemaakt en de SQL bekeken. Ik zie wel een klein verschil maar weet niet hoe dit op te lossen.

De SQL naar de gekoppelde tabel is;

TRANSFORM Sum(dbo_v_counter_category_client_total1.counter_tick) AS SomVancounter_tick
SELECT dbo_v_counter_category_client_total1.own_num, Sum(dbo_v_counter_category_client_total1.counter_tick) AS [Totaal counter_tick]
FROM dbo_v_counter_category_client_total1
GROUP BY dbo_v_counter_category_client_total1.own_num
PIVOT Format([counter_start],"Short Date");

Vervolgens krijg ik de gegevens gegroepeerd per client per start datum vanaf 01-01-2004

Dus dit klopt. Zodra ik
WHERE (((dbo_v_counter_category_client_total.counter_start) Between DateSerial(Year(Date()),Month(Date()),0) And DateSerial(Year(Date()),Month(Date())-12,1))) Toe voeg krijg ik geen gegevens meer.

Weet jij een oplossing.

Zou je me tevens kunnen helpen met het Formulier waarbij ik een vrije periode op kan vragen. Ik heb nog nooit met formulieren gewerkt.

Alvast bedankt

Marcel
 
Hallo Marcel,

open het VBA venster (toepassing openen en op ALT + F11 drukken.
Wat staat er aangevinkt onder verwijzingen (menubalk, Extra -> Verwijzingen) van boven naar beneden?

Groet,

Tardis
 
Verwijzigingen

Hoi Tardis,

De volgende verwijzigen in deze volgorde staan er.

Visual Basic For Applications
Microsoft Acces 11.0 Object Library
OLE Automation
Microsoft DAO 3.6 Object Library
Microsoft ActiveX Data Objects 2.5 Library

Ik hoop dat je hier voldoen info aan hebt.

Groet Marcel
 
Hallo Marcel,

de verwijzing Microsoft DAO 3.6 Object Library moet eentje hoger staan.
Probeer het daarna nog eens.

Groet,

Tardis
 
Werkt nog steeds niet

Beste Tardis,

Net klaar met testen maar het werkt nog niet helemaal.

Deze onderstaande SQL werkt en levert de volledige historie aan gegevens op (vanaf 01-01-2004);

TRANSFORM Sum(dbo_v_counter_category_client_total.counter_tick) AS SomVancounter_tick
SELECT dbo_v_counter_category_client_total.own_num, Sum(dbo_v_counter_category_client_total.counter_tick) AS [Totaal counter_tick]
FROM dbo_v_counter_category_client_total
GROUP BY dbo_v_counter_category_client_total.own_num
PIVOT Format([counter_start],"yyyy-mm");


Zodra ik deze SQL gebruik (laatste 12 volledige maanden) krijg ik geen gegevens meer.

TRANSFORM Sum(dbo_v_counter_category_client_total.counter_tick) AS SomVancounter_tick
SELECT dbo_v_counter_category_client_total.own_num, Sum(dbo_v_counter_category_client_total.counter_tick) AS [Totaal counter_tick]
FROM dbo_v_counter_category_client_total
WHERE (((dbo_v_counter_category_client_total.counter_start) Between DateSerial(Year(Date()),Month(Date()),0) And DateSerial(Year(Date()),Month(Date())-12,1)))
GROUP BY dbo_v_counter_category_client_total.own_num
PIVOT Format([counter_start],"yyyy-mm");

Weet jij de oplossing??

Groet Marcel:
 
Werkt bij mij prima als tabel en als gekoppelde tabel (tabel in een ander Access bestand).
Zou kunnen liggen aan de database die je gebruikt en het gegevenstype dat je in die database gebruikt voor de counter_start kolom.
Valt zo onmogelijk te zeggen.

Groet,

Tardis
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan