Aller au contenu

Requête SQL complexe (pour moi)


Sujets conseillés

Posté

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é" ... :wacko:

pas évident à expliquer donc je vous met un exemple de mes tables :


Table1 : Table2 :

Nom | Email | Total nom | email | total | statut | num_transaction
lui 1at1.fr 10 lui 1at1.fr 10 Payé 1234
elle 2at2.fr 20 lui 1at1.fr 10 Rembousé 1234
nous 3at3.fr 30 elle 2at2.fr 20 Payé 2345
vous 4at4.fr 40 nous 3at3.fr 30 refusé 3456
lui 1at1.fr 50 lui 1at1.fr 50 Payé 5678

Je souhaiterai avoir en résultat :


Nom | Email | Total | nom | email | total | statut | num_transaction
elle 2at2.fr 20 elle 2at2.fr 20 Payé 2345
lui 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 ;)

Posté

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.

Posté

Merci beaucoup Jacques , je ne savais pas qu'on pouvait utiliser un systeme de comparaison avec un autre select . c'est super çà marche impec ;)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...