Between datum query

Status
Niet open voor verdere reacties.

Stabiloy

Gebruiker
Lid geworden
3 okt 2009
Berichten
129
HAllo,

ik wil een begin datum en een einddatum ingeven, en mijn query moet dan alle resultatie die tussen die 2 datums in zijn weergeven. Ik weet dat dit mogelijk is, maar niet hoe ik dit moet toepassen..

hieronder mijn query tot nu toe.
[SQL]SELECT artikelen.IDartikel, artikelen.Artikelnaam, artikelen.Eenheid AS artikelen_Eenheid, orders.debnr, SubFormOrders.Aantal, SubFormOrders.Toelichting, Klanten.debnaam, orders.Invoerdatum, orders.Leverdatum, SubFormOrders.IDsubformorders, SubFormOrders.Eenheid
FROM Klanten INNER JOIN ((orders INNER JOIN SubFormOrders ON orders.IDorders=SubFormOrders.debnr) INNER JOIN artikelen ON SubFormOrders.IDartikel=artikelen.IDartikel) ON Klanten.debnr=orders.debnr
WHERE (((orders.Leverdatum)=datum));
[/SQL]
Dus als ik de datums 11-11-09 en 15-11-09 invoer moet hij alle records die binnen de selectie vallen op vragen, dus op de dagen 12,13,14,15.
Hoop dat het zo duidelijk is en iemand mij kan helpen.
 
Laatst bewerkt:
Je kunt daarvoor de parameter BETWEEN gebruiken:
BETWEEN [Begindatum] AND [Einddatum]

Op zich is dit al voldoende, maar je kunt het jezelf nog wat makkelijker maken door de twee parameter vast te leggen:
Ga naar <Query>, <Parameters> en maak er twee aan: Begindatum en Einddatum. Geef ze allebei het type Datum/Tijd. De namen van de parameters moeten hetzelfde zijn als in de BETWEEN statement die je als criterium gebruikt.
Nu ziet de query de twee vraagvelden altijd als datum/tijd, en kun je de datum bijvoorbeeld ook ingeven als 1-10 als je 1-10-2009 wilt gebruiken.
 
Hoe moet ik de between functie dan in mijn query zetten. Mijn query ziet er nu zo uit. Het gaat erom dat hij de artikelen met juiste artikel id, die en datum tussen de begin en einddatum hebben weergeeft. Ik weet nu de leverdatum en ArtikelID te selecteren, nu wil ik nog de between functie om te bepalen tussen welke 2 datums het moet zijn.
[SQL]
PARAMETERS Leverdatum DateTime, Begindatum DateTime, Einddatum DateTime;
SELECT artikelen.IDartikel, artikelen.Artikelnaam, artikelen.Eenheid AS artikelen_Eenheid, orders.debnr, SubFormOrders.Aantal, SubFormOrders.Toelichting, Klanten.debnaam, orders.Invoerdatum, orders.Leverdatum, SubFormOrders.IDsubformorders, SubFormOrders.Eenheid
FROM Klanten INNER JOIN ((orders INNER JOIN SubFormOrders ON orders.IDorders=SubFormOrders.debnr) INNER JOIN artikelen ON SubFormOrders.IDartikel=artikelen.IDartikel) ON Klanten.debnr=orders.debnr
WHERE (((orders.Leverdatum)=[Leverdatum]) BETWEEN [Begindatum] AND [Einddatum] AND (([artikelen.IDartikel])=[artikelID]));
[/SQL]
 
Laatst bewerkt:
Bedoel je dat jouw laatste versie niet werkt? Ik zie er zo op het eerste gezicht niet zo veel bijzonders aan; hij zou goed moeten werken. Vervang eventueel de WHERE regel door deze:

WHERE ((Orders.Leverdatum=[Leverdatum] BETWEEN [Begindatum] AND [Einddatum]) AND [artikelen.IDartikel]=[artikelID]);

Hier zit een iets andere groepering in.
 
met de query van Octafish gaf hij nog steeds geen resultaat. Heb nu dit van mijn code gemaakt:
[SQL]PARAMETERS Leverdatum DateTime, Begindatum DateTime, Einddatum DateTime;
SELECT artikelen.IDartikel, artikelen.Artikelnaam, artikelen.Eenheid AS artikelen_Eenheid, orders.debnr, SubFormOrders.Aantal, SubFormOrders.Toelichting, Klanten.debnaam, orders.Bezorgen, orders.Invoerdatum, orders.Leverdatum, SubFormOrders.IDsubformorders, SubFormOrders.Eenheid
FROM Klanten INNER JOIN ((orders INNER JOIN SubFormOrders ON orders.IDorders=SubFormOrders.debnr) INNER JOIN artikelen ON SubFormOrders.IDartikel=artikelen.IDartikel) ON Klanten.debnr=orders.debnr
WHERE ((orders.Leverdatum=[Leverdatum]) And (orders.Invoerdatum BETWEEN [Begindatum] And [Einddatum]) And (artikelen.IDartikel=[ArtikelID]));
[/SQL]
En nu werkt hij wel. Alleen nu wil ik dat hij de datums die je invoert ook meeneemt. dat dacht ik door zo te doen:
[SQL](orders.Invoerdatum<= [Begindatum] And orders.Invoerdatum >= [Einddatum])[/SQL]
Maar dat blijkt het dus niet te zijn... hoe kan ik dat dan weer oplossen?
 
Laatst bewerkt:
De vraag die ik stelde was overbodig, bij de functie between neemt hij ook de dagen mij die je invult. Dus probleem is opgelost, nogmaals bedankt
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan