IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Lister des doublons avec un lien sur 2 tables


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    coordinateur technique
    Inscrit en
    Mai 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : coordinateur technique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2019
    Messages : 5
    Par défaut Lister des doublons avec un lien sur 2 tables
    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
    Nom : tableau.jpg
Affichages : 143
Taille : 10,4 Ko

    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 :

    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 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
    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
    mais ça ne fonctionne pas! ça me donne l’erreur “ORA-00933:SQL command not properly ended ».
    Quelqu’un a-t-il une solution à me proposer ?
    Merci

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    L'erreur est dans cette ligne là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    having count(*) > 1) as TB
    Il faut supprimer le as qui, s'il est facultatif dans la norme du langage SQL, n'est pas du tout accepté par Oracle.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    coordinateur technique
    Inscrit en
    Mai 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : coordinateur technique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2019
    Messages : 5
    Par défaut
    Merci, mais il doit y avoir une autre erreur car j'ai encore le même message d'erreur.

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    A part une espace malvenue à la ligne 9 entre l'alias de la table et le nom de colonne, je ne vois pas d'autre erreur de syntaxe.

    Au passage, les jointures s'écrivent avec l'opérateur JOIN depuis plus de 25 ans maintenant. Il serait temps d'abandonner l'ancienne formulation...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    coordinateur technique
    Inscrit en
    Mai 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : coordinateur technique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2019
    Messages : 5
    Par défaut
    rien à faire, j'ai beau faire j'ai toujours un message d'erreur.
    C'est noté pour JOIN. Merci

  6. #6
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Il faut faire un listagg pour concaténer la colonne adresses (attention la limite interne de la fonction est de 2000 caractères, si ça dépasse la fonction sort en Erreur ORA-)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT TABLE1.NOM,  TABLE2.DATE, listagg(TABLE2.ADR, ' ') within group (order by adr) lst
      FROM TABLE1, TABLE2
     WHERE TABLE1.ADR = TABLE2.ADR
    group by TABLE1.NOM, TABLE2.DATE
    having count(*) > 1

Discussions similaires

  1. formule avec un lien sur un pivot table
    Par JJ1050 dans le forum Excel
    Réponses: 1
    Dernier message: 01/10/2008, 18h40
  2. rajouter des doublons avec une macro dans une colonne
    Par Banel dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/08/2008, 23h58
  3. Réponses: 10
    Dernier message: 02/07/2007, 19h09
  4. [Conception] Lister des fichiers avec une URL
    Par dontDeleteMe dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 20/03/2007, 08h16
  5. Réponses: 13
    Dernier message: 12/01/2006, 10h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo