datum meer dan een jaar geleden?

Status
Niet open voor verdere reacties.

Dj NRG

Gebruiker
Lid geworden
22 mrt 2009
Berichten
49
Hey iedereen


ik wil in een query als criterium zetten dat hij alle records moet weergeven waarvan de datum meer dan een jaar geleden is.

na wat zoeken kwam ik op < date() -365

maar ik krijg de foutmelding "de expressie bevat een ongedefinieerde functie Date"

iemand een idee waaraan dit ligt?

Greetz

Dj NRG
 
ok, hier ben ik al uitgeraakt

met < Now() -365 lukte het wel...

nu heb ik echter nog een bijkomend probleempje...

mss ff wat meer info geven over die datum:

het gaat om een jaarlijkse controle die de klant kan laten uitvoeren. stel dat er een jaar voorbij is, en de klant laat een controle uitvoeren, dan wordt dit in de database gezet, met de resultaten van de controle (als een nieuwe record in de tabel controle voor die klant)
als ik dan men query opniuew ga runnen, gaat wss diezelfde klant weer verschijnen, omdat de eerste controle al wel meer dan een jaar geleden is (de 2de controle niet). dus de query zou enkel de laatste data van een klant moeten vergelijken...
hoe doe ik dit? :s

mvg

Dj NRG
 
Dj NRG,

je zult dus op een of andere manier moeten nagaan of een record bij een klant de eerste of een volgende is. Wordt er gebruik gemaakt van een volgnummer bijv.???

Misschien moet je met een subquerie werken die bepaald welke je mag pakken. Iets met Max doen???
 
Hfoppen, bedankt voor je snelle reactie

er wordt inderdaad gebruik gemaakt van een volgnummer...

zal eens ff proberen of ik er uitkom, zoniet dan laat ik het wel weten
mvg

Dj NRG
 
Laatst bewerkt:
met DISTINCT krijg je uniek waarden uit je database.

Stel ik heb 2 klanten in Amsterdam, 1 in Rotterdam en 4 in Utrecht.

Code:
SELECT DISTINCT Woonplaats FROM KLANTEN;

geeft als resultaat:
Amsterdam, Rotterdam, Utrecht

kun je daar ies mee??
 
als ik het goed begrijp moet ik dus met een subquery werken, heb eens gegoolged, en vind er enkele voorbeelden van terug. er staat echter SQL code bij, en daar heb ik totaal geen verstand van...

vind wel ergens een voorbeeld om een top 3 te selecteren, maar ik zou dus enkel de "top 1" moeten hebben... wat is hier dan de SQL code voor? :s

hetgeen ik dus gevonden heb is het volgende:

Code:
 SELECT Orders.CustomerID, Orders.OrderDate, Orders.OrderID
FROM Orders
WHERE Orders.OrderID IN
 [B][I]  (SELECT TOP 3 OrderID                            
   FROM Orders AS Dupe                              
   WHERE Dupe.CustomerID = Orders.CustomerID        
   ORDER BY Dupe.OrderDate DESC, Dupe.OrderID DESC) [/I][/B]
ORDER BY Orders.CustomerID, Orders.OrderDate, Orders.OrderID;

als ik het een beetje begrijp, dan zou is de text die ik cursief gezet heb de subquery? maar wat is "dupe"? en kan ik gewoon "select top 1" doen?

kan dit ook gedaan worden zonder rechtsstreeks in sql code te moeten werken? :s

mvg

Dj NRG
 
met DISTINCT krijg je uniek waarden uit je database.

Stel ik heb 2 klanten in Amsterdam, 1 in Rotterdam en 4 in Utrecht.

Code:
SELECT DISTINCT Woonplaats FROM KLANTEN;

geeft als resultaat:
Amsterdam, Rotterdam, Utrecht

kun je daar ies mee??

*in de war* :s

waarom zou ik dat nodig hebben?

hetgeen ik dus heb is een tabel met metinggegevens..

hierin staat een primaire sleutel: MeetID
ook heb ik een KlantID (welke gekoppeld is aan men klanttabel)
verder heb ik de achternaam en voornaam, welke opgezocht worden via de KlantID
en dan heb ik (buiten de meetgegevens, die hier niet echt belangrijk zijn) de datum.
als ik een nieuwe meting doe, wordt er een record bijaangemaakt, met een nieuwe MeetId (autonummering), klantID (dezelfde als de vorige meting voor die klant), voor en achternaam (ook dezelfde, opgezocht via KlantID), en nieuwe datum.

hetgeen ik dus zou moeten doen is voor dezelfde klantID gaan zoeken naar de hoogste MeetID, en daarvan de datum kiezen...

maar hoe doe ik dat? :s

alvast bedankt voor je hulp

mvg

Dj NRG
 
Laatst bewerkt:
Ik heb de draad eens rustig bekeken, en snap eigenlijk steeds minder waar het over gaat.... Als ik het goed begrijp, sla je in een tabel jaarlijkse controles op van verschillende klanten, en wil je in de query alleen de laatste resultaten zien?

Als dat zo is, kan dat heel simpel door Totalen aan te zetten, en bij datum of volgnummer, dat maakt waarschijnlijk niet zoveel uit, op Max te zetten. Je krijgt dan per definitie van elke klant het laatste record.

Als je wat anders bedoelt, is een voorbeeldje misschien wel handig...

Michel
 
ik denk inderdaad dat ik bedoel wat je zegt octafish...

zal het eens proberen...

mvg

Dj NRG
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan