Toon posts:

Maanden en jaar filteren met Access Query

Pagina: 1
Acties:
  • 500 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo,

Mijn bedoeling is een query te maken in Access waarbij ik een overicht krijg van gegevens van een bepaalde maand en jaar. Dus als ik voor Oktober 2004 kies, wil ik alleen de gegevens zien van Oktober 2004. Nu staat in het tabel waar ik de datum uithaal de datum als standaard tijd en datum ingesteld. Is het mogelijk om deze informatie te filteren via een query?

  • Koppensneller
  • Registratie: April 2002
  • Laatst online: 15:41

Koppensneller

winterrrrrr

SQL:
1
2
3
SELECT month(datumveld) as maand
FROM table
WHERE maand = 10 AND year(datumveld) = 2004


:?

[ Voor 33% gewijzigd door Koppensneller op 10-05-2006 11:14 ]


Verwijderd

SQL:
1
2
3
4
5
6
Select
  *
from
  tabel
where
  datum >= [dag 1 gezochte periode] AND datum < [dag 1 maand daarop]

Ik gebruik hier expres GEEN between, omdat die nogal eens rare resultaten kan geven als je niet goed oplet met de tijden in de datums.

Verwijderd

Topicstarter
code:
1
2
3
4
SELECT DISTINCTROW dbo_RPT_UrenZiek.PNaam, dbo_RPT_UrenZiek.Jaar, Sum(dbo_RPT_UrenZiek.Ziek) AS [Som Van Ziek], dbo_RPT_UrenZiek.Dat
FROM dbo_RPT_UrenZiek
GROUP BY dbo_RPT_UrenZiek.PNaam, dbo_RPT_UrenZiek.Jaar, dbo_RPT_UrenZiek.Dat
HAVING (((dbo_RPT_UrenZiek.Jaar) Like "*" & [forms]![Weergave]![ziek] & "*"));


Dit is wat ik op het moment heb, ik heb het via de ontwerpweergave van de query gemaakt. Op het moment haalt die het jaar uit een invoerveld en een andere kolom in het tabel. In hetzelfde tabel (dbo_RPT_UrenZiek) staat ook de datum normaal getoond dbo_RPT_UrenZiek.Dat... Deze moet dus gebruikt worden om de maand en het jaar mee te filteren.

Verwijderd

Verwijderd schreef op woensdag 10 mei 2006 @ 11:29:
code:
1
2
3
4
SELECT DISTINCTROW dbo_RPT_UrenZiek.PNaam, dbo_RPT_UrenZiek.Jaar, Sum(dbo_RPT_UrenZiek.Ziek) AS [Som Van Ziek], dbo_RPT_UrenZiek.Dat
FROM dbo_RPT_UrenZiek
GROUP BY dbo_RPT_UrenZiek.PNaam, dbo_RPT_UrenZiek.Jaar, dbo_RPT_UrenZiek.Dat
HAVING (((dbo_RPT_UrenZiek.Jaar) Like "*" & [forms]![Weergave]![ziek] & "*"));


Dit is wat ik op het moment heb, ik heb het via de ontwerpweergave van de query gemaakt. Op het moment haalt die het jaar uit een invoerveld en een andere kolom in het tabel. In hetzelfde tabel (dbo_RPT_UrenZiek) staat ook de datum normaal getoond dbo_RPT_UrenZiek.Dat... Deze moet dus gebruikt worden om de maand en het jaar mee te filteren.
Waarom doe je je filtering op jaar in je Having-clause ?

Verwijderd

Topicstarter
Dit is wat ik op het moment heb en gewoon gedaan via de simpele ontwerpweergave van de query's. Ik zelf ben er verder niet zo bekend in. Mijn bedoeling is gewoon de maand en het jaar uit het kolom Dat te halen zodat ik daar op kan filteren. Daarna is dat gedeelte die informatie filtert uit de jaarkolom overbodig. (lijkt mij)

Verwijderd

Topicstarter
Ik ben er inmiddels zelf al uit:

code:
1
2
3
4
SELECT dbo_RPT_UrenZiek.PNaam, Month([dbo_RPT_UrenZiek].[Dat]), Year([dbo_RPT_UrenZiek].[Dat]) AS Expr1, Sum(dbo_RPT_UrenZiek.Ziek) AS [Som Van Ziek]
FROM dbo_RPT_UrenZiek
GROUP BY dbo_RPT_UrenZiek.PNaam, Month([dbo_RPT_UrenZiek].[Dat]), Year([dbo_RPT_UrenZiek].[Dat])
HAVING (((Month([dbo_RPT_UrenZiek].[Dat]))=10) AND ((Year([dbo_RPT_UrenZiek].[Dat]))=2004));


iig bedankt

Verwijderd

Verwijderd schreef op woensdag 10 mei 2006 @ 12:18:
Ik ben er inmiddels zelf al uit:

code:
1
2
3
4
SELECT dbo_RPT_UrenZiek.PNaam, Month([dbo_RPT_UrenZiek].[Dat]), Year([dbo_RPT_UrenZiek].[Dat]) AS Expr1, Sum(dbo_RPT_UrenZiek.Ziek) AS [Som Van Ziek]
FROM dbo_RPT_UrenZiek
GROUP BY dbo_RPT_UrenZiek.PNaam, Month([dbo_RPT_UrenZiek].[Dat]), Year([dbo_RPT_UrenZiek].[Dat])
HAVING (((Month([dbo_RPT_UrenZiek].[Dat]))=10) AND ((Year([dbo_RPT_UrenZiek].[Dat]))=2004));


iig bedankt
houd er wel rekening mee dat dit traag is....door de Month() en Year() functies te gebruiken in de Where kan er geen gebruik worden gemaakt van eventuele indexen. Niet aan te raden indien je veel records hebt in je tabel
Pagina: 1