Afficher la liste des doublons
Bonjour,
ça fais un moment que je cherche à afficher la liste des doublons, dans une requete sql, mais pas moyen, pourtant j'ai beau regarder les différents sujets, mais je n'arrive pas à faire ma requete.
Initialement , j'ai fais une requete permettant de compter le nombre de doublons par personne, donc qui ont une date d'enregistrement >1, ma requete est comme ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
select count(t6.dateEnregistrement), ta.identifiant,t6.dateEnregistrement,ta2.NOM_personne
from Tableconge2 t6
inner join dossiers_2 t5 on t6.IDrefT4 = t5.id
inner join dossiers_1 t4 on t4.id=t5.C211_IDrefT5
inner join annee tAnnee on tAnnee.ID = t4.tAnnee
inner join groupe4 ta on ta.id = t4.idrefTa
inner join personne ta2 on ta2.ID = ta.X503_IDrefTa
where tAnnee.annee in (2017,2018)
and t6.dateEnregistrement <>to_date('31/12/2999','dd/mm/yyyy')
group by ta.identifiant,t6.dateEnregistrement,ta2.NOM_personne
having count(t6.dateEnregistrement)>1 |
là j'ai un resultat sous la forme :
3 -- 9885454 -- 05/06/2017 00:00:00 -- philipe debreuille
2 -- 4555555-- 06/06/2017 00:00:00 -- croc odile
8 -- 00021111-- 09/06/2017 00:00:00 -- Gery Cane
Pour philipe debreuille, j'ai 3 doublons en date du 05/06/2017
croc odile j'ai 2 doublon
gery cane j'ai 8 doublons
et j'aimerais avoir , enfin modifié ma requete ( pour en faire une a part ) pour qu'il me sorte la liste :
9885454 -- 05/06/2017 00:00:00 -- philipe debreuille
9885454 -- 05/06/2017 00:00:00 -- philipe debreuille
9885454 -- 05/06/2017 00:00:00 -- philipe debreuille
4555555-- 06/06/2017 00:00:00 -- croc odile
4555555-- 06/06/2017 00:00:00 -- croc odile
00021111-- 09/06/2017 00:00:00 -- Gery Cane
00021111-- 09/06/2017 00:00:00 -- Gery Cane
00021111-- 09/06/2017 00:00:00 -- Gery Cane
00021111-- 09/06/2017 00:00:00 -- Gery Cane
00021111-- 09/06/2017 00:00:00 -- Gery Cane
00021111-- 09/06/2017 00:00:00 -- Gery Cane
00021111-- 09/06/2017 00:00:00 -- Gery Cane
00021111-- 09/06/2017 00:00:00 -- Gery Cane
avec ma 1ere requete j'ai 200 resultats, là c'est ok
J'ai cherché, j'ai beau enlevé le count rien dans mon select, rien n'y fait.
Le problème est que : si j'enlève mon having et group by, j'ai bien ma liste de personne, y compris celle qui sont en doublons mais je me retrouve avec ....... 120 000 résultats et là c'est pas bon..
J'avais pensé à faire une sous requete, en gros faire un select etc..... qui me retourne les 120 k de resultats et faire un:
where dateEnregistrement not in ( select ..... from ..... where... group by dateEnregistrement havingcount(date)>1) mais j'ai pas l'impression que ça marche, auriez vous quelques conseils ?
un grand merci à vous
problème pour identifier les doublons
Bonjour,
j'ai un problème similaire, sur une requête , j'ai ma requête de base suivant :
Code:
1 2 3 4 5
|
SELECT t1.identifiant,
d1.numcontrat
FROM personne t1
INNER JOIN contrat d1 ON d1.numcontrat = t1.id |
ici on a la liste des personnes avec leur numéros de contrat, jusque là ok, mais ce que je souhaite établir, c'est la liste des personnes en doublon, sur un même numéro de contrat, donc par exemple :
identifiant |
numcontrat |
123456 |
800000123529 |
123456 |
800000123529 |
123456 |
800000123529 |
6598 |
800054523529 |
donc en gros je souhaiterais que ma requête retourne que les 3 premières ligne.
Quand je fais une requete avec un having je n'ai pas le résultat escompté, je sais qu'il y a une subtilité avec ça mais j'arrive pas à la trouver :
Code:
1 2 3 4 5 6 7
|
SELECT t1.identifiant,
d1.numcontrat
FROM personne t1
INNER JOIN contrat d1 ON d1.numcontrat = t1.id
GROUP BY d1.numcontrat,t1.identifiant
HAVING count(*) > 1 |
En gros si je comprends bien, je dois retourner la liste des enregistrements pour lesquels on a un même identifiant et un même numero de contrat, je ne dois pas avoir de ligne unique :s
merci pour vos conseils