requete SQL max date [ACCESS] - VB/VBA/VBS - Programmation
Marsh Posté le 11-06-2007 à 17:42:35
indice : faut passer par une sous-requête où km_d.date = (select max(km_d.date)
Marsh Posté le 11-06-2007 à 18:00:15
oui, ca j'avais percuté ^^°
mais mon probleme c'est que pour un exemple
iRefDST Date
1 15/02/07
1 23/05/07
2 23/05/07
3 16/04/07
mon résultat actuel avec max(date) est
1 23/05/07
2 23/05/07
et
le 3 16/04/07 n'apparait pas
Marsh Posté le 11-06-2007 à 18:27:12
le max prend la date la plus grande en l'occurence le 23/05/2007 et donc pas le 16/04/07
non ?
ce que tu veux faire c pas en fait un tri croissant ?
Marsh Posté le 11-06-2007 à 18:41:03
Bonsoir,
SELECT km_d.irefdst, Max([ddate]) AS Expr1
FROM km_d
GROUP BY km_d.irefdst
;
???
Cordialement
Marsh Posté le 12-06-2007 à 00:32:41
re bonsoir,
le group by me permet d'imposer quoi exactement stp senior ?
Marsh Posté le 12-06-2007 à 07:19:58
Bonjour,
c'est à mettre dans ta sous requète
tu auras pour chaque irefdst la date max qui lui est propre.
si tu ne le mets pas tu as les irefdst qui ont la date max de km_d.
lances la requete et regardes ce qu'elle donne.
MagicBuzz ou ingénieurcesi ou un autre te diront comment l'intégrer dans une requète complète. OU bien ils te diront pourquoi je me plante (encore)
Cordialement
Marsh Posté le 12-06-2007 à 10:31:34
Je crois qu'il y a malentendu.
jpcheck a écrit : ...avec la dDate maximum dans la table KM_D... |
jpcheck a écrit :
mon résultat actuel avec max(date) est |
Ton résultat me semble conforme à ce que tu demandes.
J'en déduis que ta demande est peut-être mal formulée.
Tu ne souhaites pas la date la plus récente de la table KM_D (23/05/07), mais la plus récente de l'enregistrement (iRefDST) en cours de jointure avec KM_D, respectivement 23/05/07 pour iRefDST=1, 23/05/07 pour iRefDST=2, 16/04/07 pour iRefDST=3, non ?
Si j'ai bien compris, alors ta requete devra ressembler à ça :
SELECT KM_DT.sDocT, KM_DST.sDocST, KM_D.sDocTitre, KM_D.dDate
FROM KM_D, KM_DST, KM_DT
WHERE KM_D.iRefDST = KM_DST.iRefDST and KM_DST.iRefDT=KM_DT.iRefDT and KM_D.dDate = (SELECT Max(dDate) FROM KM_D WHERE KM_D.iRefDST = KM_DST.iRefDST)
ou ça (syntaxe Access) :
SELECT KM_DT.sDocT, KM_DST.sDocST, KM_D.sDocTitre, KM_D.dDate
FROM KM_D INNER JOIN (KM_DST INNER JOIN KM_DT ON KM_DST.iRefDT = KM_DT.iRefDT) ON KM_D.iRefDST = KM_DST.iRefDST
WHERE KM_D.dDate = (SELECT Max(dDate) FROM KM_D WHERE KM_D.iRefDST = KM_DST.iRefDST)
Je ne suis pas sûr à 100% (je manque de pratique) mais j'espère que ça t'éclairera.
Marsh Posté le 12-06-2007 à 15:02:46
je vous aime
bon alors dans mon cas, c'est un peu plus compliqué que la demande de départ, mais ca marche
Code :
|
je sais, il y a boire et a manger
Marsh Posté le 12-06-2007 à 15:03:22
je vous aime
bon alors dans mon cas, c'est un peu plus compliqué que la demande de départ, mais ca marche
Code :
|
je sais, il y a boire et a manger
Marsh Posté le 12-06-2007 à 15:39:21
jpcheck a écrit : je vous aime
|
pis je crois que t'as résolu le dilème de "à quel moment je fais ma césure pour indenter mon code ?"
avec le scroll horizontal de 12km c'est vachement plus pratique à lire
Marsh Posté le 12-06-2007 à 18:53:45
ReplyMarsh Posté le 12-06-2007 à 18:55:42
seniorpapou a écrit : Bonsoir, |
Même avec avec mon 24" en 16/10 ça s'arrête à "INNER JOIN (RM_Document..."
Marsh Posté le 12-06-2007 à 18:57:07
Sorti de ça, à vue de nez, ta sous-requête est bonne.
Juste que le "IN" replacé par un "=" est suffisant logiquement.
Marsh Posté le 11-06-2007 à 16:45:50
Bonjour tout le monde,
je cale sur une requete sql à passer dans access, et comme ca dure un peu trop, je fais appel à vous.
La situation:
3 tables avec
KM_D (documents)
iRefDoc (clé primaire)
iRefDST (numérique)
dDate (date)
sDocTitre (texte)
KM_DST (sous type de document)
iRefDST (clé primaire)
sDocST (texte)
iRefDT (numérique)
KM_DT (type de document)
iRefDT (clé primaire)
sDocT (texte)
les liaisons sont KM_D.iRefDST = KM_DST.iRefDST et KM_DST.iRefDT=KM_DT.iRefDT
le résultat de la requête doit être
sDocT, sDocST, sDocTitre, dDate avec la dDate maximum dans la table KM_D...
dsl pas de screenshot pour les tables...