rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

[Access 97] Requête sur intervalle de date

Posté par Catalaburro, le jeudi 22 février 2007 à 17:43:21
Bonjour à tous,

Dans une requête access je souhaite ne prendre en compte que les 12 derniers mois. J'ai vu que la fonction Interval qui existe en SQL n'est pas dans Access. Comment faire ?

Merci de votre aide
Configuration: Windows 2000
Firefox 2.0.0.1
Répondre à Catalaburro  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Jacques, le vendredi 23 février 2007 à 13:09:32
Bonjour,

Je présume que cette requête SQL, une fois adaptée, satisfera votre besoin.

SELECT <table1>.<champ_date1>, <table1>.<champ1>
FROM <table1> WHERE (((Format([champ_date1],"mmdd")=Format(Date(),&quo­t;mmdd"))=-1));

Toutes les dates anniversaires (mois+jour) sont listées. Il reste à filtrer l'année qui vous intéresse.

Bien cordialement
La science ne fait que trouver ce qui existe depuis toujours.
Hubert REEVES.
Répondre à Jacques

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Catalaburro, le mardi 6 mars 2007 à 17:54:15
Bonjour,

Et merci pour ton indication à laquelle je ne réponds que tardivement. La requête que je souhaiterais faire devrait être utilisée afin de représenter graphiquement l'évolution du nombre de consultations mensuelles de ressources numériques au cours des 12 derniers mois. Si j'ai bien compris ta réponse, je n'aurais par le biais de cette requête que deux dates, et la courbe obtenue serait peu intéressante. Mais je me trompe peut-être, étant donné que je débute en SQL. Je ne baisse pas les bras pour autant

Cordialement,
Répondre à Catalaburro

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Jacques, le mercredi 7 mars 2007 à 09:24:23
Bonjour,

Pour obtenir la liste des enregistrements sur 12 mois glissants, il faut, et il suffit, d'insérer le signe '>' devant '-1'.
Cela peut alors s'énoncer comme : Je veux la liste des enregistrements dont la date est postérieure à "aujourd'hui -1 an".

C'est un raisonnement tortueux, mais vous obtiendrez, je pense, le résultat escompté.

Cordialement
La science ne fait que trouver ce qui existe depuis toujours.
Hubert REEVES.
Répondre à Jacques

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
blux, le mercredi 7 mars 2007 à 09:25:29
Il faut donc modifier les test pour changer le = en > :
WHERE (((Format([champ_date1],"mmdd")>Format(Date(),&­quot;mmdd"))=-1)).
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
Répondre à blux

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Catalaburro, le mercredi 7 mars 2007 à 13:04:29
Merci beaucoup pour vos réponses,

Ca marche exactement comme je voulais mais reste, me semble-t-il un petit problème.
Voici donc ma requête :
SELECT TConsultations.IdRes, TConsultations.Mois, Sum(TConsultations.Consultations) AS Consultations
FROM TConsultations
WHERE (((Format([Mois],"mmdd")>Format(Date(),"mm­dd"))=True))
GROUP BY TConsultations.IdRes, TConsultations.Mois;

Que se passera-t-il quand j'aurai, disons, trois ans de statisques ? Dois-je rajouter un filtre du type "Sélectionne les résultats ou Année actuelle - Année du mois =<1"
Quelle devrait être la véritable syntaxe pour que cela marche ? Celle-ci (WHERE Format (((Date (), "yyyy")-Format ([Mois],"yyyy")=<1)=True) ) ne fonctionne pas

Merci!
Répondre à Catalaburro

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
blux, le mercredi 7 mars 2007 à 13:18:39
Cette requête est bizarre !

Qui a modifié le '=-1' pour le remplacer par '=true' ?

Elle doit marcher quel que soit le nombre d'années présentes...
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
Répondre à blux

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Catalaburro, le jeudi 8 mars 2007 à 09:07:28
C'est du sql remouliné par Access, c'est pour ça que le "-1" est exprimé en toutes lettres je pense.

Je me suis aperçu qu'en fait ce filtre WHERE (((Format([Mois],"mmdd")>Format(Date(),"mm­dd"))=-1)) pose problème. En effet nous sommes en 03/2007 et donc ma requête va chercher tous les mois dont le quantième est strictement supérieur à 3, donc à partir de 04/2006 jusqu'au 12/2006, mais ne ramène pas la période du 01/2007 au 02/2007. Par ailleurs, si on se situe en 03/2008, elle remontera les résultats sur 04/2006-12/2006 mais aussi sur 04/2007-12/2007.
Je pense donc faire un truc encore plus tortueux, du genre "la somme des quantièmes de mois en partant de la date actuelle doit être égale à 78 (somme des 12 premiers entiers naturels)" en utilisant peut être Datepart, mais je ne suis pas sûr que ça puisse marcher comme cela.

A suivre...
Répondre à Catalaburro

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Jacques, le jeudi 8 mars 2007 à 10:00:21
Bonjour,

Pour information :
De mon côté, sous ACCESS 2000, la syntaxe comportant '>-1' ne reproduit pas l'incident décrit.



Cordialement
La science ne fait que trouver ce qui existe depuis toujours.
Hubert REEVES.
Répondre à Jacques

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Catalaburro, le jeudi 8 mars 2007 à 10:16:19
Bonjour,

Effectivement, je suis sous Acces 97...
Ceci explique cela.
Répondre à Catalaburro

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Catalaburro, le jeudi 8 mars 2007 à 11:19:17
Rebonjour,

Mon problème est résolu :
J'ai utilisé comme filtre:
WHERE (((DateDiff("d",[Mois],Date())<=395)=-1))

Merci pour vos réponses !
Répondre à Catalaburro

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Jacques, le jeudi 8 mars 2007 à 13:21:33
Bonne journée,

Pour mémoire :
Je confirme que cette syntaxe fonctionne corectement sous ACCESS 2000

Merci pour le tuyau


La science ne fait que trouver ce qui existe depuis toujours.
Hubert REEVES.
Répondre à Jacques
Logiciels pertinents trouvés dans les téléchargements
Télécharger Index.dat Analyzer v 2.0Index.dat Analyzer - Index.dat Analyzer permet de voir, éditer et effacer le contenu de ces fichiers - théoriquement cachés - qui participent aux...Catégorie: Anonymat/Confidentialité
Licence: Freeware/gratuit
Télécharger Super 2007.build.22Super - SUPER © est un convertisseur audio/vidéo universel, supportant une grande variété de formats d'entrée, dont : formats...Catégorie: Vidéo
Licence: Freeware/gratuit
Télécharger Powerpoint Viewer 2003Powerpoint Viewer - La Visionneuse PowerPoint 2003 vous permet d'afficher des présentations dotées de toutes les fonctionnalités créées dans...Catégorie: Présentation
Licence: Freeware/gratuit
Télécharger Word Viewer 2003Word Viewer - La visionneuse Word Viewer vous permet d'ouvrir des documents Word 2003 et des documents créés avec toutes les versions...Catégorie: Traitement de texte
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « [Access 97] Requête sur intervalle de date »