raph37 Posté 30 Décembre 2010 Posté 30 Décembre 2010 Bonjour à tous . J'ai un souci avec ma requête SQL . Je dois vous avouer que je ne suis pas bien calé dans le SQL , alors je me permet de vous demander de l'aide . J'ai 2 Tables que je croise et récupère toutes les colonnes . Ces tables contiennent des informations relatives a des payements. La première recueil les infos des "paniers" validés ou non et l'autre table contient les informations relatives au payement ( dont une colonne gerant le statut des payement: Payé , en attente , refusé , remboursé ). Sachant que dans la table 2 il peut y avoir 2 fois ou plus le même identifiant de transaction mais avec un statut de payement diffèrent , j'aimerai donc savoir comment sélectionner uniquement les statut de payement "Payé" mais seulement si il n'existe pas le même identifiant de transaction avec le statut "remboursé" ... pas évident à expliquer donc je vous met un exemple de mes tables : Table1 : Table2 :Nom | Email | Total nom | email | total | statut | num_transactionlui 1at1.fr 10 lui 1at1.fr 10 Payé 1234elle 2at2.fr 20 lui 1at1.fr 10 Rembousé 1234nous 3at3.fr 30 elle 2at2.fr 20 Payé 2345vous 4at4.fr 40 nous 3at3.fr 30 refusé 3456lui 1at1.fr 50 lui 1at1.fr 50 Payé 5678 Je souhaiterai avoir en résultat : Nom | Email | Total | nom | email | total | statut | num_transactionelle 2at2.fr 20 elle 2at2.fr 20 Payé 2345lui 1at1.fr 50 lui 1at1.fr 50 Payé 5678 je pense qu'il faut utiliser un systeme de jointure externe , mais je n'arrive pas à bien comprendre le fonctionnement ... Merci beaucoup de votre aide
jcaron Posté 30 Décembre 2010 Posté 30 Décembre 2010 select * from panier,paiement where panier.email=paiement.email and paiement.statut='Payé' and not exists (select 1 from paiement p2 where p2.email=panier.email and status='Remboursé') Non? Ceci dit, tu as probablement intérêt à: - ajouter un identifiant paiement -> panier (un même client peut faire plusieurs commandes) - ajouter quelque chose qui te permette de définir un ordre des opérations de paiement, et à sélectionner le dernier paiement pour un panier donné Jacques.
raph37 Posté 30 Décembre 2010 Auteur Posté 30 Décembre 2010 Merci beaucoup Jacques , je ne savais pas qu'on pouvait utiliser un systeme de comparaison avec un autre select . c'est super çà marche impec
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant