Bonjour,
j'utilise un peu le SQL mais je ne suis pas spécialiste du tout, et je trouve souvent des solutions en consultant ce forum, mais cette fois pas pour mon problème ci-dessous (ou je n'arrive pas à les transposer à mon probl
Je cherche à lister des lignes comportant plusieurs champs dont 2 champs présentent des doublons, et je voudrais afficher ces doublons et les autres champs de la ligne.
Voici une description de ce que je veux faire, ce sera peut être plus clair:
à partir d’une 1ère requête sur 2 tables table1.NOM et table2.DATE j’obtiens des valeurs nom (NOM), adresse (ADR), et date (DATE).
L’adresse permet de faire la jointure entre les 2 tables.
Les valeurs peuvent présenter des doublons sur les champs NOM et DATE des colonnes table1.NOM et table2.DATE.
Voici cette première requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT TABLE1.NOM, TABLE1.ADR, TABLE2.DATE FROM TABLE1, TABLE2 WHERE TABLE1.ADR = TABLE2.ADR
Pour une même personne et une même date il peut y avoir 2 adresses différentes, ce qui est une erreur (=> lignes 1,2 et 4,5).
Je veux lister ces erreurs, les doublons NOM/DATE uniquement (en rouge).
Pour ça je mets les doublons en évidence avec un group by et having count :
Mais en faisant de cette façon je n’ai pas l’adresse, il n'y a que le nom et la date, et c’est là que je bloque, car pour ajouter l’adresse j’ai essayé ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT TABLE1.NOM, TABLE2.DATE FROM TABLE1, TABLE2 WHERE TABLE1.ADR = TABLE2.ADR group by TABLE1.NOM, TABLE2.DATE having count(*) > 1
mais ça ne fonctionne pas! ça me donne l’erreur “ORA-00933:SQL command not properly ended ».
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT TABLE1.ADR, TABLE1.NOM, TABLE2.DATE FROM TABLE1 TA1, TABLE2 TA2 inner join (SELECT TABLE1.NOM, TABLE2.DATE FROM TABLE1, TABLE2 WHERE TABLE1.ADR = TABLE2.ADR group by TABLE1.NOM, TABLE2.DATE having count(*) > 1) as TB ON TA1.NOM=TB.NOM and TA2.DATE =TB. DATE
Quelqu’un a-t-il une solution à me proposer ?
Merci
Partager