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 :

Problème requête sql


Sujet :

SQL Oracle

  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2013
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 934
    Points : 348
    Points
    348
    Par défaut Problème requête sql
    Bonjour
    j'ai un petit soucis avec une requête et ça fais un moment que je patauge, j'aimerais avoir la liste des personnes qui utilise un même iban .
    En fait, si on a plusieurs personne distinct qui utilise un même iban, elle doit apparaître dans la requete et je sais pas trop comment m'y prendre

    on a la table:
    personne(idpersonne,nom,prenom,identifiant,)
    coordonnéesBanc(idcoord, rib,iban,bic,idrefpersonne)

    J'ai vu ce genre de requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    select nom,prenom,rib
    from personne t1
    inner join coordonnéesBanc  t2 on t1.idpersonne=t2.idrefpersonne
    where idpersonne= 
    (
        select idpersonne
        from personne t3
        group by idpersonne
        having count(*)>1
    )
    j'arrive pas à comprendre car selon moi ,pour avoir le même rib utilisé par plusieurs personnes distinctes, ça ne serait pas comme cela si ?

    merci pour vos conseils

  2. #2
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Points : 1 493
    Points
    1 493
    Billets dans le blog
    1
    Par défaut
    pour moi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select nom,prenom,ri iban from personne order iban
    devrait être un bon départ

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 897
    Points : 53 133
    Points
    53 133
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    WITH
    T AS
    (
    select nom, prenom, rib, 
           COUNT(*) OVER(PARTITION BY rib) AS DOUBLON_RIB
    from   personne
    )
    SELECT *
    FROM   T
    WHERE  DOUBLON_RIB > 1
    ORDER  BY DOUBLON_RIB DESC;
    Ceci te donnera les personnes ayant des RIB commun avec le nombre de RIB commun

    A +

  4. #4
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2013
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 934
    Points : 348
    Points
    348
    Par défaut
    merci à vous !

    j'ai testé et étrangement pour certaines personnes, il me met dans "doublon_rib" 1024 alors que quand je fais un filtre, sur la personne il en met que 2 est ce normal ?

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 957
    Points : 4 386
    Points
    4 386
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    with iban_stats as (
      select cb.iban, p.*, count(distinct idrefpersonne) over (partition by iban) as npers_per_iban
      from personne p 
      join coordonneesBanc cb on cb.idrefpersonne = p.idpersonne
    )
    select distinct st.* from iban_stats st where npers_per_iban > 1
    order by iban
    ;

  6. #6
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 998
    Points : 2 501
    Points
    2 501
    Par défaut
    Pour être franc, je n'aime pas du tout le nom de tes colonnes car je ne sais pas à quoi elles correspondent.
    personne(idpersonne,nom,prenom,identifiant) : identifiant, oui mais de quoi? Cette colonne pointe vers idcoord, vers rib, vers iban?
    coordonnéesBanc(idcoord, rib,iban,bic,idrefpersonne) : idrefpersonne pointe vers idpersonne?

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 897
    Points : 53 133
    Points
    53 133
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par android59 Voir le message
    merci à vous !

    j'ai testé et étrangement pour certaines personnes, il me met dans "doublon_rib" 1024 alors que quand je fais un filtre, sur la personne il en met que 2 est ce normal ?
    C'est pas étrange ! C'est parfaitement logique !!!! Si tu élimine des personnes, tu élimine aussi les rib de ces personnes et donc tu n'as plus le même compte de rib en doublon !!!!!!!!!!!!!!!!!!!!!!

    Il serait peut être temps d'apprendre ce qu'est un SGBD RELATIONNEL et comment s'en servir avec du SQL !

    A +

  8. #8
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2013
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 934
    Points : 348
    Points
    348
    Par défaut
    Citation Envoyé par Ikebukuro Voir le message
    Pour être franc, je n'aime pas du tout le nom de tes colonnes car je ne sais pas à quoi elles correspondent.
    personne(idpersonne,nom,prenom,identifiant) : identifiant, oui mais de quoi? Cette colonne pointe vers idcoord, vers rib, vers iban?
    coordonnéesBanc(idcoord, rib,iban,bic,idrefpersonne) : idrefpersonne pointe vers idpersonne?
    je vais t'apporter plus de lumière

    personne(idpersonne,nom,prenom,identifiantPersonne) : identifiantPersonne: champ correspond à un numéro de personne, c'est juste un champ qui ne point vers aucun autre champ.
    idpersonne c'est la clé primaire

    coordonnéesBanc(idcoord, rib,iban,bic,idrefpersonne)
    idcoord c'est la clé primaire
    idrefpersonne clé étrangère qui pointe vers idpersonne est ce que ça te parait un peu plus clair ?

    Merci

  9. #9
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2013
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 934
    Points : 348
    Points
    348
    Par défaut
    ça marche nickel, un grand merci à vous !

  10. #10
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2013
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 934
    Points : 348
    Points
    348
    Par défaut
    Citation Envoyé par JeitEmgie Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    with iban_stats as (
      select cb.iban, p.*, count(distinct idrefpersonne) over (partition by iban) as npers_per_iban
      from personne p 
      join coordonneesBanc cb on cb.idrefpersonne = p.idpersonne
    )
    select distinct st.* from iban_stats st where npers_per_iban > 1
    order by iban
    ;
    je me suis arrangé avec mes données et j'ai bien les bons résultats qui ressort, merci: )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème requête SQL
    Par mandaillou dans le forum Langage SQL
    Réponses: 15
    Dernier message: 03/10/2005, 11h37
  2. Problème requête SQL dans page ASP
    Par rocs dans le forum ASP
    Réponses: 14
    Dernier message: 26/07/2005, 15h38
  3. problème requête sql
    Par psychoBob dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/07/2005, 17h50
  4. problème requête sql
    Par perfectdams dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 21/06/2005, 18h09
  5. Réponses: 8
    Dernier message: 23/10/2003, 16h22

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