|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2010 Messages : 78 ![]() |
Exposé du pb
J'ai une table ACTIONS qui liste un ensemble d'actions faites sur des clients, pour chaque action on a une date d'action. Je voudrais faire une requête SQL qui me permette de lister la dernière action (nature)faite sur chaque client. Pour cela je fais une requête qui me semble toute simple : Code :
SELECT DISTINCT MAX(actions_datejour) AS date,actions_client,actions_nature FROM actions GROUP BY actions_datejour,actions_client Or je voudrais la dernière action faite sur le compte client c'est à dire une ligne par client avec la date la plus récente ainsi que la nature de l'action. Merci pour votre aide
|
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|
00
|
|
|
#3 | ||
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 652 ![]() |
Bonjour,
En fait ceci est dû à votre clause GROUP BY, vous agrégez sur les actions et les dates alors qu'il faudrai plutot le faire sur le client uniquement. Donc une piste : Code :
|
||
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2010 Messages : 78 ![]() |
En fait, tu me disais que le pb venait du group by.
Code :
SELECT DISTINCT MAX(actions_datejour) AS date,actions_client,actions_nature FROM actions GROUP BY actions_client |
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Oui mais rien ne t'assure que actions_client et actions_nature soient bien ceux de MAX(actions_datejour).
Le GROUP BY fait perdre la dépendance fonctionnelle entre les colonnes.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 652 ![]() |
s'il a une date qui réfère 2 actions, dans ce cas la requete retourne 2 lignes, donc fonctionnellement c'est juste
![]() T'as solution est mieux s'il dispose de clef auto-incrémentée, sinon pas le choix. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com