requête sql pour supprimer des doublons

daviddu60

XLDnaute Nouveau
Bonjour à tous
, je reviens vers vous pour comprendre la méthode qui permet de supprimer de la requête SQL les doublons:
j'ai 9 colonnes
13 onglets
je sais créer la requête d'union mais je voudrais supprimer les doublons pour 3 colonnes uniquement
:
exemple:

SELECT DISTINCT Table1.Date, Table1.`Début PEC`, Table1.`Fin PEC`, Table1.`Interv#`, Table1.`p-ap-anp-ann`, Table1.Nom, Table1.Lieu, Table1.Durée, Table1.Notes,’table1’
FROM Table1 Table1
WHERE EXISTS( SELECT *,’Table2’ FROM Table2 Table2 Union SELECT ,’Table3’ FROM Table3 Table3 Union SELECT *,’Table4’ FROM Table4 Table4 Union SELECT *,’Table5’ FROM Table5 Table5 Union SELECT *,’Table6’ FROM Table6 Table6 Union SELECT *,’Table7’ FROM Table7 Table7 Union SELECT *,’Table8’ FROM Table8 Table8 Union SELECT *,’Table9’ FROM Table9 Table9 Union SELECT *,’Table10’ FROM Table10 Table10 Union SELECT *,’Table11’ FROM Table11 Table11 Union SELECT *,’Table12’ FROM Table12 Table12 Union SELECT *,’Table13’ FROM Table13 Table13
WHERE t1.ID <> t2.ID
Table1.Date, Table1.`Début PEC
`, Table1.`Interv#`,
`, Table1.Nom
Et là je seche


Merci à vous
cordialement
Davdi
 

chris

XLDnaute Barbatruc
Re : requête sql pour supprimer des doublons

Bonjour

Assez indigeste hors contexte !

De façon générale
  • on utilise DISTINCT Pour garder tout les enregistrements et UNIQUE pour éliminer les doublons
  • les doublons ne peuvent être considérés sur un nombre de colonnes inférieur à celui du nombre de colonnes du résultat

Explique ton contexte et ton objectif car là...
 

daviddu60

XLDnaute Nouveau
Re : requête sql pour supprimer des doublons

Merci Chris une fois de plus
en reprenant le tableau que tu avais renvoyé:
les colonnes (dates+noms+intervention) ne doivent pas renvoyer de doublons: plusieurs professionnels peuvent avoir le même temps de réunion, à la même date, pour un même client. Je dois donc extraire ces doublons. je peux le faire après l'extraction sur le TCD mais s'il est possible de le faire sur la requête en précisant uniquement pour ces colonnes ce serait très bien
Merci
cordialement
David
PS désolé pour l'indigestion
 

chris

XLDnaute Barbatruc
Re : requête sql pour supprimer des doublons

Re

Ton 1er TCD n'était pas très lisible...

Si tu disais déjà en français (sans parler de requête ou d'Excel) ce que concrètement tu veux analyser, on pourrait plus facilement choisir une piste...
 

daviddu60

XLDnaute Nouveau
Re : requête sql pour supprimer des doublons

merci Chris de te pencher sur ma question.
en Pj le fichier
comme tu le vois, le 01/03 à 16:00 chaque salarié note la reunion à laquelle il assiste portant sur un même client
je dois pouvoir retrouver pour chaque salarié cette réunion dans le TCD.
Mais je ne dois retrouver pour le client qu'1 seule réunion (donc supprimer doublon: nom et accompagnement et date) ce que je sais faire après le TCD mais si je pouvais le faire en natif dans la requete.....?
merci de ton aide
cordialement
David
 

Pièces jointes

  • essai TCD.zip
    105 KB · Affichages: 37
  • essai TCD.zip
    105 KB · Affichages: 34

chris

XLDnaute Barbatruc
Re : requête sql pour supprimer des doublons

Bonjour

Si tu veux trouver la réunion pour le salarié tu dois garder l'unité (chaque action).

Pour synthétiser par client : comme déjà dit tu ne peux synthétiser dans une requête sur un nombre de champs inférieur au nombre total de champs.
Il faudrait 2 requêtes jointes dans une troisième. Je ne sais si Msquery permet de réexploiter une requête.
Peut-être faisable par des requêtes imbriquées mais vu le peu de convivialité de l'interface, je ne tenterai pas.

Si tu veux l'info une seule fois pour le client il faudrait renvoyer les données dans une feuille Excel et y ajouter une formule supplémentaire.

Soit tu gardes un seul TCD mais dans ce cas en filtrant sur un salarié qui a participé avec 3 autres à une même action, tu auras 0,25 action pour lui, soit tu fais un second TCD pour afficher 1 quand tu t'intéresse au salarié plutôt qu'au client.

Sinon il faut passer à PowerPivot qui permet le calcul d'unicité ou remplacer MsQuery par Access plus souple...
 

daviddu60

XLDnaute Nouveau
Re : requête sql pour supprimer des doublons

Bonsoir Chris
si je comprends bien ce que tu dis "Pour synthétiser par client : comme déjà dit tu ne peux synthétiser dans une requête sur un nombre de champs inférieur au nombre total de champs." il faudrait que je fasse une requete avec seulement les 3 champs qui m'intéresse avec la fonction 'unique'? et dans ce cas ne supprime-t-il que les doublons répondant à la triple condition de date, d'accompagnement et de nom réunis?
sinon j'extrairai du TCD en double cliquent sur le résultat final, il m'ouvre un tableau duquel je peux sortir les doublons.
Merci pour ton aide
cordialement
david
 

chris

XLDnaute Barbatruc
Re : requête sql pour supprimer des doublons

Bonjour

Il y a un point auquel tu n'as pas répondu : considères-tu que la participation du salarié à une réunion avec 2 autres collègues compte pour 1 ou pour 1/3 quand on considère l'activité du salarié et non celle fournie au client qui doit être 1 et non 3.

Si c'est 1 il faut 2 TCD, sinon un seul suffit.

Dans les 2 cas il faut un calcul particulier.

Pour cela tu as les solutions alternatives suivantes :

  1. Garder le requête initiale mais la renvoyer vers un onglet, y ajouter une colonne calculée, faire 2 TCD distincts selon que l'on calcule par client (calcul actuel) ou par salarié (colonne ajoutée) ou utiliser cette nouvelle colonne dans un TCD unique si on compte 1/3 pour le salarié.
  2. En plus de ton TCD et sa requête, faire une autre requête sans la colonne salariée ajoutée
    Code:
    SELECT  * FROM Céline where accompagnement is not null
    union SELECT  * FROM Marie  where accompagnement is not null
    union SELECT  * FROM Sandrine  where accompagnement is not null
    et renvoyer la requête vers un nouveau TCD orienté Client où le salarié n'apparaitra pas.
    Par défaut les requêtes UNION éliminent les doublons
  3. Mettre les sources sous forme de tableau, réaliser la requête avec PowerPivot et utiliser un "distinct count" dans un nouveau TCD orienté Client où le salarié n'apparaitra pas.
    Il faut bien sûr installer au préalable PowerPivot...
 

daviddu60

XLDnaute Nouveau
Re : requête sql pour supprimer des doublons

Merci Chris
la participation du salarié vaut 1
c'est bien le doublon pour le "client" que je veux éliminer
je viens de comprendre: en ajoutant : 'Céline'; 'Marie'; ...... on créé la colonne supplémentaire qui empêchait avec la requête de supprimer les doublons.
Il faut donc que j'en fasse 2: l'une sans ces colonnes ajoutées de nom d'intervenant----> centré donc sur le client et l'autre pour avoir avoir la totalité des données.
Merci
Cordialement
david
 

Statistiques des forums

Discussions
312 294
Messages
2 086 906
Membres
103 404
dernier inscrit
sultan87