Bonjour à tous,
je voudrais passer une colonne d'une requete principale dans une sous requête imbriquée.

Explication. J'ai une bd qui gère des commandes, chaque commande à plusieurs états (annulé, confirmée, payée, expédiée,livrée etc...). Ceci est dans une table ou il y a l'id_commande, l'id_etat la date de l'attribution de l'état. Je voudrais donc toute les commandes dont le dernier état est 3 (expédiée).
Et bien je n'y arrive pas.

Je fais cette requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
select lce.id_commande id_cde from l_commande_etat lce
 where (select * from (select id_etat from l_commande_etat
           where l_commande_etat.id_commande=id_cde ORDER BY
           date_commande_etat desc) where rownum = 1) = 3;
J'ai un message d'erreur qui me dit id_cde identificateur non valide.
Quand je fais juste la sous requete suivante avec un id_cde fixé à 1000 par exemple, j'ai bien un résultat avec id_etat de 3.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
select * from (select id_etat from l_commande_etat
                where l_commande_etat.id_commande=id_cde
                ORDER BY date_commande_etat desc) where rownum = 1
Comprenez-vous mon problème ? je voudrais en fait qu'au lieu de 1000 ce soit id_cde et donc qu'au lieu de faire la requete que pour une commande je voudrais toutes les commande avec comme dernier état en date l'état 3

Je n'arrive pas à trouver comment faire, merci de votre aide.