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

Langage SQL Discussion :

Requête SQL .. lignes enfants avec valeurs du parent


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Février 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Février 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Requête SQL .. lignes enfants avec valeurs du parent
    Bonjour a tous,
    J'ai un petit souci sur une requete: dans ma table j'ai les 4 colonnes suivantes :

    Date | No. | Type | Amount
    --------------------------------------------
    01/01/2013 | 110200014 | A | 19,259.00
    12/03/2013 | 110200014 | D | -802.46
    10/06/2013 | 110200014 | D | -1,604.92

    Le type A est un "parent" le type "D" un enfant du parent A.

    Comme résultat , j'aimerais que toutes mes lignes "enfant" aient la valeur Amount du "parent" (19,259.00" dans "amount" sur la ligne du parent et sur toutes les lignes de ses enfants).

    J'espere que ma demande est claire.

    Merci d'avance

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour

    comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    SELECT fils.Date, Fils.No, Fils.Type, Pere.Amount
    FROM LaTable fils
    INNER JOIN LaTable pere
        ON pere.No = fils.No 
        AND pere.Type = 'A'

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Février 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Février 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    Bonjour

    comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    SELECT fils.Date, Fils.No, Fils.Type, Pere.Amount
    FROM LaTable fils
    INNER JOIN LaTable pere
        ON pere.No = fils.No 
        AND pere.Type = 'A'

    Bonjour et merci
    Cette requete fonctionne mais elle ne me donne que les lignes avec les types "A" donc tous les pères mais je perds toutes les lignes des fils.
    Exemple: si j'ai un total de 100 lignes peres et fils confondus et que j'execute cette erquete je ne vois que les peres , soit 20 lignes.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 243
    Points : 12 874
    Points
    12 874
    Par défaut
    Bonjour,
    Vu la description, j'aurai plutôt fait ceci:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT fils.Date, Fils.No, Fils.Type, Pere.Amount
    FROM LaTable fils
    INNER JOIN LaTable pere
        ON pere.No = fils.No 
    where pere.Type = 'A' and fils.type = 'D'
    Sinon le père sera "lié" à lui-même.

    Tatayo.

  5. #5
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par tatayo Voir le message
    Sinon le père sera "lié" à lui-même.
    Oui, c'était bien le but, justement affin d'afficher les pères aussi.
    D'après ce que j'ai compris, il faut afficher les pères avec leur "amount", et les enfants avec le "amount" de leur père ?!?

    Par contre :
    Cette requete fonctionne mais elle ne me donne que les lignes avec les types "A"
    êtes-vous sûr que les pères ont la même valeur que les enfants dans la colonne "No" ?

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Février 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Février 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    Oui, c'était bien le but, justement affin d'afficher les pères aussi.
    D'après ce que j'ai compris, il faut afficher les pères avec leur "amount", et les enfants avec le "amount" de leur père ?!?

    Par contre :


    êtes-vous sûr que les pères ont la même valeur que les enfants dans la colonne "No" ?


    Cette reformulation : D'après ce que j'ai compris, il faut afficher les pères avec leur "amount", et les enfants avec le "amount" de leur père ?!?
    est exactement ce que je cherche..
    Je confirme que les pere et les enfants ont la meme valeur dans la colonne No_

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Février 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Février 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par tatayo Voir le message
    Bonjour,
    Vu la description, j'aurai plutôt fait ceci:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT fils.Date, Fils.No, Fils.Type, Pere.Amount
    FROM LaTable fils
    INNER JOIN LaTable pere
        ON pere.No = fils.No 
    where pere.Type = 'A' and fils.type = 'D'
    Sinon le père sera "lié" à lui-même.

    Tatayo.
    Celle-ci me donne du vide..

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 243
    Points : 12 874
    Points
    12 874
    Par défaut
    aieeeuuuuu => autant pour moi, j'avais mal compris la demande.

    mienmien69100 => Est-ce qu'on peut voir la requête telle qu'elle a été lancée, avec les vrais noms de table ?

    Tatayo.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Février 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Février 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Je vais devoir stopper pour aujourd'hui .. je reviens vers vous demain merci encore

  10. #10
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    oui, là il y a quelque chose de bizarre, il va donc nous falloir plus d'info :

    1/ quel SGBDR
    2/ quelle structure de table (avec le type des colonnes)

  11. #11
    Membre averti
    Avatar de diablo-dz
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 75
    Points : 327
    Points
    327
    Par défaut
    Bonsoir
    essaye avec cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select t4.date,t4.no,t4.type,t4.amount,t5.amount from t4
    inner join t4 t5 on t5.no=t4.no 
    where t5.type='a'
    T4: nom de la table
    T5: choisi importe nom

    A++

    Diablo-dz

  12. #12
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par diablo-dz Voir le message
    Bonsoir
    essaye avec cette requête :
    C'est l'équivalent de la première requête que j'avais proposée, mais apparemment celle-ci ne renvoi que les parents.

    Il doit y avoir quelque chose avec la colonne No (peut-être une espace qui traine, ou autre que l'on ne voit pas mais qui invalide l'égalité...)

  13. #13
    Membre averti
    Avatar de diablo-dz
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 75
    Points : 327
    Points
    327
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    oui, là il y a quelque chose de bizarre, il va donc nous falloir plus d'info :

    1/ quel SGBDR
    2/ quelle structure de table (avec le type des colonnes)
    Merci aieeeuuuuu
    je suis d'accord avec toi.

    A+

  14. #14
    jc2
    jc2 est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 27
    Points : 33
    Points
    33
    Par défaut
    Bonjour,
    voici une proposition de solution qui permet de distinguer clairement pere et fils. J'ai rajouté des "1" aux noms de colonnes car je suis sous oracle et date et type sont des mots réservés.

    jc2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    select 
      t1.date1,
      t1.no1,
      t1.type1,
      t1.amount1
    from table1 t1
    where type1='A'
    union all
    select 
      t2.date1,
      t2.no1,
      t2.type1,
      t1.amount1
    from table1 t1
    inner join table1 t2
    on t1.no1 = t2.no1 and t1.type1 = 'A'
    where t2.type1='D'

Discussions similaires

  1. Réponses: 9
    Dernier message: 19/02/2009, 14h39
  2. problèmes requête sql, dont lien avec la valeur d'un textbox
    Par Drone dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 12/02/2009, 17h28
  3. [Requête/SQL]Mise à jour avec condition
    Par atlantideD dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 22/04/2007, 23h14
  4. [Requête/SQL]Remplacer champ par valeur autre champ
    Par BORDEAUX4 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 17/04/2007, 11h05
  5. [SQL] ligne dont la valeur d'un champ est unique
    Par kopofb dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/11/2005, 20h53

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