[Access / Sql] Comment mettre un critere sur les 3 dernieres semaines

Comment mettre un critere sur les 3 dernieres semaines [Access / Sql] - SQL/NoSQL - Programmation

Marsh Posté le 18-05-2004 à 13:01:29    

Bonjour,
 
Je m'explique : Je souhaite effectuer une requete SQL, avec les parametres suivant :
Selectionner les lignes des trois dernieres semaines (la premiere colonne de ma bd contient bien evidemment les dates au format mm/dd/yyyy) a compter d'aujourdhui.
 
Est-ce possible avec juste le langage SQL, et si oui, quelqu'un peut-il me venir en aide sur ce point ?
 
Merci d'avance.
 
Lebowski

Reply

Marsh Posté le 18-05-2004 à 13:01:29   

Reply

Marsh Posté le 18-05-2004 à 13:37:29    

Tu vas finir par me pomper tout mon code!!!! Je vais pas tarder à le mettre en licence GPL!!!!
 

Code :
  1. SELECT DISTINCT
  2. ...
  3. FROM XX
  4. WHERE ([XX].[Date début])<DLookup("[Date fin]","[Période glissante]" ) And ([XX].[Date début])>DLookup("[Date début]","[Période glissante]" );


 
"Période glissante" est une table à un enregistrement qui contient les champs Date fin et Date début.
 

Code :
  1. UPDATE [Période glissante]
  2. ET [Date fin] = [Date de fin: (jj/mm/aaaa)], [Date début] = DateAdd("d",-JJ,[Date de fin: (jj/mm/aaaa)]);


 
Celle là met à jour "Période glissante": elle te demande "Date de fin: (jj/mm/aaaa)" et "calcule date début" (JJ jours avant la date de fin)
 
Tu dois pouvoir adapter ca.....
 
Tu fais quoi exactement??? Si ce n'est la même chose que moi avec quelques semaines de retard??? :lol:


Message édité par strawfield le 18-05-2004 à 13:38:45

---------------
Ils ne savaient pas que c'était impossible, alors ils l'ont fait.   Mark Twain
Reply

Marsh Posté le 18-05-2004 à 15:46:14    

le plus simple est d'ajouter 3*7 = 21 jours a la date, et de comparer a la date du jour ...
 
exemple :
 
select * from matable
where monchampdate + 21 > datesysteme;
 
en tout cas ca marche en Oracle :D

Reply

Marsh Posté le 18-05-2004 à 16:09:43    

Merci beaucoup, je vais voir ca (pour l'instant je planche sur un probleme de BOF EOF, voir un autre post).
Je pense en fait que je vais plutot pouvoir utiliser les recordset de Visual Basic, afin d'aller chercher la date plus facilement (du style : ...WHERE (((DAILY.DATE)=" & -un truc en Visual qui va chercher la date actuelle - & )).
Sinon, je reviendrai a ta methode (desole j'ai pas encore teste).
Beegee, le probleme est (bien evidemment) que je ne travaille pas sous Oracle ;) Ca a l'air bien plus facile pourtant...
 
Sinon Strawfield, pour repondre a ta question, je fais actuellement un stage ingenieur "informaticien" (enfin pas du gros brutal non plus) en Roumanie. Mon theme me demande de travailler avec des bases Access (disons meme dBase) et le langage le plus approprie me semblait le VB... que je ne connaissais pas, evidemment :)
 
Viendez en Roumanie d'ailleurs, ca defonce (sauf le clavier qwerty) !

Reply

Marsh Posté le 18-05-2004 à 16:23:06    

mince, j'avais bien lu le premier post pour voir sous quel type de base tu travaillais, mais j'ai pas regarde le tire attentivement :D
 
enfin faut creuser un peu dans les fonctions de dates et tu devrais trouver un equivalent.

Reply

Marsh Posté le 18-05-2004 à 16:40:40    

beegee a écrit :

select * from matable
where monchampdate + 21 > datesysteme;
 
en tout cas ca marche en Oracle :D


 
Ca tourne aussi en SQL Jet...mais j'ai pas la synthaxe exacte en tête.
 
J'ai filé mon code brut de décoffrage...à toi de voir ce que tu peut récupèrer.
 
J'ai créé la table "période glissante" pour savoir quel a été la dernière date utilisée car c'est l'opérateur qui choisit la date d'enregistrement...Et des fois y a du n'importe quoi de fait!!!!


---------------
Ils ne savaient pas que c'était impossible, alors ils l'ont fait.   Mark Twain
Reply

Marsh Posté le 18-05-2004 à 16:57:31    

Bon, je vais me rentrer, car la journee a ete longue.
A demain, vu que je vais surement plancher dessus.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed