Problème :
J'ai une table client qui contient 3605 lignes, Ensemble de client de l'année
passer.
je veux obtenir la liste des clients qui n'ont pas acheter aucun article cette année.
NB : en basant sur 2 tables FACTURE et CLIENT
a+








Problème :
J'ai une table client qui contient 3605 lignes, Ensemble de client de l'année
passer.
je veux obtenir la liste des clients qui n'ont pas acheter aucun article cette année.
NB : en basant sur 2 tables FACTURE et CLIENT
a+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT * FROM CLIENT LEFT JOIN FACTURE ON CLIENT.CLIENT_ID=FACTURE.CLIENT_ID WHERE FACTURE_ID is null;








Explique moi cette requêtte, SVP
:
J'ai compris que Facture et le maître de clients, par contre je pense le contraire.
Donc, si la table facture ne contient pas de clients, ces dernier seront supprimer !
a+
c'est le contraire c'est client qui est maitre.
je selectionne TOUS les enregistrements de CLIENT dont le CLIENT_ID n'existe pas dans FACTURE.








La suite est de supprimer la liste des clients de la table clients:
Suppression fondée sur les données d'une seconde table ou view
J'ai utilisé cette reqûete
Mais Le résultats le vidage de la Table
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 DELETE * FROM CLIENT WHERE EXISTS ( LEFT JOIN FACTURE ON CLIENT.CLIENT_ID=FACTURE.CLIENT_ID WHERE FACTURE_ID is null );
a+
Sur SQL Server:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 DELETE CLIENT WHERE CLIENT_ID NOT IN ( SELECT DISTINCT CLIENT_ID FROM FACTURE WITH (READUNCOMMITTED) )








Merci, ça marche sur SQL Server
j'ai importer la base de dbase III
vers SQL server 2000 puis j'ai appliquer la requête
Tous va bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 DELETE CLIENT WHERE CLIENT_ID NOT IN ( SELECT DISTINCT CLIENT_ID FROM FACTURE WITH (READUNCOMMITTED) )
J'ai trouvé qu'il y a 7514 sur 11017 client qui n'ont rien acheter en l'an 2003. Maintenant j'ai 3503 client.
a+
Partager