Supprimer les doublons d'une requête
APILilou
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Moi avoir besoin d'aide... Je travaille sur une Base de données que je n'ai pas développé et je ne connais strictement rien au langage SQL...
J'ai une petite requête qui me permet de récupérer des code fournisseur avec les noms correspondants par rapport a une date d'effet d'un traité (voir structure jointe)
Mais je souhaiterai que les fournisseur n'apparaisse qu'une fois...
Alors en farfoulliant, j'ai trouvé la fonction SELECT ... FROM ... GROUP BY ... ORDER BY .... que j'ai écrit comme ça :
Public Static Function J2S04_Code_surete()
SQL = "SELECT Sûreté.Nom_fournisseur_surete FROM Sûreté GROUP BY Sûreté.Nom_fournisseur_surete ORDER BY Sûreté.Nom_fournisseur_surete"
End Function
Mais euh après je bloque....
HELP ME PLEASE...
Merci beaucoup pour vos réponses...
Lydia.
Moi avoir besoin d'aide... Je travaille sur une Base de données que je n'ai pas développé et je ne connais strictement rien au langage SQL...
J'ai une petite requête qui me permet de récupérer des code fournisseur avec les noms correspondants par rapport a une date d'effet d'un traité (voir structure jointe)

Mais je souhaiterai que les fournisseur n'apparaisse qu'une fois...
Alors en farfoulliant, j'ai trouvé la fonction SELECT ... FROM ... GROUP BY ... ORDER BY .... que j'ai écrit comme ça :
Public Static Function J2S04_Code_surete()
SQL = "SELECT Sûreté.Nom_fournisseur_surete FROM Sûreté GROUP BY Sûreté.Nom_fournisseur_surete ORDER BY Sûreté.Nom_fournisseur_surete"
End Function
Mais euh après je bloque....
HELP ME PLEASE...
Merci beaucoup pour vos réponses...
Lydia.
A voir également:
- Supprimer doublons sql
- Supprimer rond bleu whatsapp - Guide
- Supprimer une page word - Guide
- Doublons photos - Guide
- Supprimer les doublons excel - Guide
- Supprimer pub youtube - Accueil - Streaming
4 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonsoir, tu ne nous as pas expliqué pourquoi ce que tu as essayé ne te convient pas. cela donné un message d'erreur, ou bien le résultat te semble-t-il incorrect?
peux-tu également partager le code SQL de ta petite requête?
peux-tu également partager le code SQL de ta petite requête?
Bonjour Yg_be,
Alors le souci c'est que plus aucun nom ne s'affiche...
et voilà ce qui s'affiche lorsque que je me met en mode SQL :
SELECT Sûreté.Code_fournisseur_surete AS [C0300-Code du fournisseur de la sûreté (le cas échéant)], J2S04_Code_surete() AS [C0320-Nom du fournisseur de la sûreté (le cas échéant)], Section_Cession.Date_effet_traite_section, Section_Cession.Date_fin_traite_section, SEntiteApiAs(Traite_Cession.Id_traite) AS Apicil_Assurance, SEntiteApiPrev(Traite_Cession.Id_traite) AS Apicil_Prévoyance, SEntiteMicils(Traite_Cession.Id_traite) AS Micils
FROM Programme INNER JOIN ((Courtier INNER JOIN Categorie_Courtier ON Courtier.Id_courtier = Categorie_Courtier.Id_courtier) INNER JOIN ((Section_Cession INNER JOIN (Traite_Cession INNER JOIN (Assureur INNER JOIN Sûreté ON Assureur.Id_assureur = Sûreté.Id_assureur) ON (Assureur.Id_assureur = Traite_Cession.Id_reassureur) AND (Traite_Cession.Id_traite = Sûreté.Id_traite)) ON (Traite_Cession.Id_traite = Section_Cession.Id_traite) AND (Section_Cession.Id_traite_section = Sûreté.Id_traite_section)) INNER JOIN Categorie_Assureur ON Assureur.Id_assureur = Categorie_Assureur.Id_assureur) ON Courtier.Id_courtier = Traite_Cession.Id_courtier) ON Programme.Id_programme = Traite_Cession.Id_programme;
Encore merci pour ton aide..
Alors le souci c'est que plus aucun nom ne s'affiche...
et voilà ce qui s'affiche lorsque que je me met en mode SQL :
SELECT Sûreté.Code_fournisseur_surete AS [C0300-Code du fournisseur de la sûreté (le cas échéant)], J2S04_Code_surete() AS [C0320-Nom du fournisseur de la sûreté (le cas échéant)], Section_Cession.Date_effet_traite_section, Section_Cession.Date_fin_traite_section, SEntiteApiAs(Traite_Cession.Id_traite) AS Apicil_Assurance, SEntiteApiPrev(Traite_Cession.Id_traite) AS Apicil_Prévoyance, SEntiteMicils(Traite_Cession.Id_traite) AS Micils
FROM Programme INNER JOIN ((Courtier INNER JOIN Categorie_Courtier ON Courtier.Id_courtier = Categorie_Courtier.Id_courtier) INNER JOIN ((Section_Cession INNER JOIN (Traite_Cession INNER JOIN (Assureur INNER JOIN Sûreté ON Assureur.Id_assureur = Sûreté.Id_assureur) ON (Assureur.Id_assureur = Traite_Cession.Id_reassureur) AND (Traite_Cession.Id_traite = Sûreté.Id_traite)) ON (Traite_Cession.Id_traite = Section_Cession.Id_traite) AND (Section_Cession.Id_traite_section = Sûreté.Id_traite_section)) INNER JOIN Categorie_Assureur ON Assureur.Id_assureur = Categorie_Assureur.Id_assureur) ON Courtier.Id_courtier = Traite_Cession.Id_courtier) ON Programme.Id_programme = Traite_Cession.Id_programme;
Encore merci pour ton aide..
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
quand tu écris "je souhaiterai que les fournisseur n'apparaisse qu'une fois", que veux-tu dire précisément?
peux-tu donner un exemple?
as-tu essayé d'ajouter DISTINCT après le SELECT?
peux-tu donner un exemple?
as-tu essayé d'ajouter DISTINCT après le SELECT?
SELECT DISTINCT Sûreté.Code_fournisseur_surete AS ...
Un fournisseur peut avoir plusieurs contrats...
Je souhaite avoir la liste des fournisseurs actifs sur un année donnée...
Actuellement, la requête m'affiche tous les fournisseurs comme suit : si le fournisseur est utilisé avec 3 contrats, le fournisseur apparaîtra 3 fois dans la liste. Or, je veux qu'il ne s'affiche qu'une seule fois dans la liste...
Quand j'ajoute DISTINCT comme conseillé :
"SELECT DISTINCT Sûreté.Code_fournisseur_surete AS [C0300-Code du fournisseur de la sûreté (le cas échéant)], Sûreté.Nom_fournisseur_surete AS [C0320-Nom du fournisseur de la sûreté (le cas échéant)], Section_Cession.Date_effet_traite_section, Section_Cession.Date_fin_traite_section, SEntiteApiAs(Traite_Cession.Id_traite) AS Apicil_Assurance, SEntiteApiPrev(Traite_Cession.Id_traite) AS Apicil_Prévoyance, SEntiteMicils(Traite_Cession.Id_traite) AS Micils
FROM Programme INNER JOIN ((Courtier INNER JOIN Categorie_Courtier ON Courtier.Id_courtier = Categorie_Courtier.Id_courtier) INNER JOIN ((Section_Cession INNER JOIN (Traite_Cession INNER JOIN (Assureur INNER JOIN Sûreté ON Assureur.Id_assureur = Sûreté.Id_assureur) ON (Assureur.Id_assureur = Traite_Cession.Id_reassureur) AND (Traite_Cession.Id_traite = Sûreté.Id_traite)) ON (Traite_Cession.Id_traite = Section_Cession.Id_traite) AND (Section_Cession.Id_traite_section = Sûreté.Id_traite_section)) INNER JOIN Categorie_Assureur ON Assureur.Id_assureur = Categorie_Assureur.Id_assureur) ON Courtier.Id_courtier = Traite_Cession.Id_courtier) ON Programme.Id_programme = Traite_Cession.Id_programme;"
Cela me regroupe les fournisseurs et non supprime les doublons...
Je souhaite avoir la liste des fournisseurs actifs sur un année donnée...
Actuellement, la requête m'affiche tous les fournisseurs comme suit : si le fournisseur est utilisé avec 3 contrats, le fournisseur apparaîtra 3 fois dans la liste. Or, je veux qu'il ne s'affiche qu'une seule fois dans la liste...
Quand j'ajoute DISTINCT comme conseillé :
"SELECT DISTINCT Sûreté.Code_fournisseur_surete AS [C0300-Code du fournisseur de la sûreté (le cas échéant)], Sûreté.Nom_fournisseur_surete AS [C0320-Nom du fournisseur de la sûreté (le cas échéant)], Section_Cession.Date_effet_traite_section, Section_Cession.Date_fin_traite_section, SEntiteApiAs(Traite_Cession.Id_traite) AS Apicil_Assurance, SEntiteApiPrev(Traite_Cession.Id_traite) AS Apicil_Prévoyance, SEntiteMicils(Traite_Cession.Id_traite) AS Micils
FROM Programme INNER JOIN ((Courtier INNER JOIN Categorie_Courtier ON Courtier.Id_courtier = Categorie_Courtier.Id_courtier) INNER JOIN ((Section_Cession INNER JOIN (Traite_Cession INNER JOIN (Assureur INNER JOIN Sûreté ON Assureur.Id_assureur = Sûreté.Id_assureur) ON (Assureur.Id_assureur = Traite_Cession.Id_reassureur) AND (Traite_Cession.Id_traite = Sûreté.Id_traite)) ON (Traite_Cession.Id_traite = Section_Cession.Id_traite) AND (Section_Cession.Id_traite_section = Sûreté.Id_traite_section)) INNER JOIN Categorie_Assureur ON Assureur.Id_assureur = Categorie_Assureur.Id_assureur) ON Courtier.Id_courtier = Traite_Cession.Id_courtier) ON Programme.Id_programme = Traite_Cession.Id_programme;"
Cela me regroupe les fournisseurs et non supprime les doublons...
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
et ainsi?
SELECT DISTINCT Sûreté.Code_fournisseur_surete AS [C0300-Code du fournisseur de la sûreté (le cas échéant)], Sûreté.Nom_fournisseur_surete AS [C0320-Nom du fournisseur de la sûreté (le cas échéant)] FROM Programme INNER JOIN ((Courtier INNER JOIN Categorie_Courtier ON Courtier.Id_courtier = Categorie_Courtier.Id_courtier) INNER JOIN ((Section_Cession INNER JOIN (Traite_Cession INNER JOIN (Assureur INNER JOIN Sûreté ON Assureur.Id_assureur = Sûreté.Id_assureur) ON (Assureur.Id_assureur = Traite_Cession.Id_reassureur) AND (Traite_Cession.Id_traite = Sûreté.Id_traite)) ON (Traite_Cession.Id_traite = Section_Cession.Id_traite) AND (Section_Cession.Id_traite_section = Sûreté.Id_traite_section)) INNER JOIN Categorie_Assureur ON Assureur.Id_assureur = Categorie_Assureur.Id_assureur) ON Courtier.Id_courtier = Traite_Cession.Id_courtier) ON Programme.Id_programme = Traite_Cession.Id_programme;