|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 21 ![]() |
Bonjour,
J'ai un souci niveau requete SQL. J'ai une table mvt avec les colonnes : - mvt_num : action incrémenté (clé primaire) - mvt_act_num : numero de l'action - mvt_plc : place de l'action - mvt_dte = date de l'action Requête: Code :
Je souhaite obtenir la liste des numéros d'action sur la place 1 uniquement. Je récupère donc la dernière date de l'action avec la sous requête * Je récupère uniquement ceux en place = 1 * Cependant j'ai trop de valeur dans la sous requête. Ça me jette car on ne peut pas faire un IN sur plusieurs colonnes. Quelqu'un aurait il une solution s'il vous plait ? Merci d'avance |
||
|
|
00
|
|
|
#2 | ||||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Bonjour,
Votre requête ne peut pas fonctionner, car la sous requête renvoie deux colonnes, alors que IN suppose une seule colonne. Enfin je ne suis pas sûr de bien comprendre votre besoin Citation:
Citation:
Est-ce que cette requête répond à votre besoin : ? Code :
|
||||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 21 ![]() |
Merci mais la requete que vous me proposez ne va pas.
En fait le contenu de ma table est de ce genre : mvt_num | mvt_act_num | mvt_plc | mvt_dte .....0.................0................0........19/01/2011 - 10:10:00 .....1.................0................1........19/01/2011 - 10:00:00 .....2.................1................2........19/01/2011 - 10:15:00 .....3.................2................0........19/01/2011 - 10:00:00 .....4.................2................1........19/01/2011 - 10:08:00 .....5.................2................2........19/01/2011 - 10:10:00 Donc si je souhaite avoir uniquement les mvt_act_num qui sont en 1 votre requete fonctionne mais je souhaite avoir les mvt_act_num qui ont la derniere date dont la plc =1 Donc le resultat doit être : mvt_act_num= 1 uniquement Le 2 est en plc=2 dans sa dernière date. J'espère que mon explication est claire Merci |
|
|
00
|
|
|
#4 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
hmmm
ceci ? Code sql :
|
||
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 21 ![]() |
Le problème de
Code :
C'est pourquoi j'avais mis un group by par mvt_act_num J'avais la liste avec la dernière action Je ne sais pas du tout comment résoudre ce souci |
||
|
|
00
|
|
|
#6 | ||||
![]() ![]() |
Citation:
![]() Citation:
Ça ne colle pas avec le résultat attendu : Citation:
Citation:
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||||
|
00
|
|
|
#7 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
je crois que je commence a comprendre...
quel est votre SGBDR ? essayez ceci : Code sql :
|
||
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
|
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 21 ![]() |
Je suis sous Oracle 10g
ca me met : Mot cle absent pour AS tmp Exact pour le jeu d'essai désolé Prenez plutot celui la : mvt_num | mvt_act_num | mvt_plc | mvt_dte .....0.................0................0........19/01/2011 - 10:10:00 .....1.................0................1........19/01/2011 - 10:00:00 .....2.................1................2........19/01/2011 - 10:15:00 .....3.................2................0........19/01/2011 - 10:00:00 .....4.................2................2........19/01/2011 - 10:08:00 .....5.................2................1........19/01/2011 - 10:10:00 Le resultat doit être 2 mvt_num = clé primaire auto incréménté mvt_act_num est un numéro d'action (table d'action) donc clé etrangère mvt_plc est sa place mvt_date, sa date de placement Je souhaite avoir toutes les actions qui sont en place 1 Quand je parle de date c'est que la place qui doit être prise en compte pour chacune des action doit être la plus récente. |
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
|
|
|
10
|
|
|
#11 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 21 ![]() |
C'est exactement cela
Merci beaucoup Par contre, puis je avoir une petite explication s'il vous plait ? |
|
|
00
|
|
|
#12 | ||||||
![]() ![]() |
Quelle est la dernière date de chaque action ?
Code :
Code :
Code :
En plus de la phrase en bleu de ma signature, tu devrais aussi lire "Le discours de la méthode" qui préconise notamment de décomposer un problème complexe en problèmes plus simples. C'est la meilleure méthode pour construire des requêtes SQL complexes.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||||||
|
10
|
|
|
#13 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 21 ![]() |
Merci a vous deux.
Exxxxcellent ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com