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 :

récupérer le nom du parent d'un champ


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Points : 20
    Points
    20
    Par défaut récupérer le nom du parent d'un champ
    Salut tout le monde ,
    j'ai besoin d'aide
    je veux récupérer le nom du parent d'un champ : j'ai un champ service je veux récupérer sa division et je n'ai que son parent_id et a travers l'id je peux récupérer son nom : service.parent_id.nom


    comment je peux faire ca en sql

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 080
    Points : 30 801
    Points
    30 801
    Par défaut
    Si tu nous donnais la structure de ta table (ou tes tables) ainsi qu'un début de requête, ce serait peut-être plus simple pour qu'on puisse commencer à essayer de t'aider...
    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
    Membre actif
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    311
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 311
    Points : 257
    Points
    257
    Par défaut
    C'est assez marrant car on a donné la même réponse que al1 sur le chat

  4. #4
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Cela permet de mieux vous répondre


    Un peu de lecture !


    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    salut
    J'ai une table :
    departement:
    nom
    type
    parent_id


    je veux recuperer le nom de parent_id comment faire ? est ce que c est posssbile de faire departement.parent_id.nom pour recuperer le nom?

    merci



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select d.itilParent_id,
    d.rqTitle,
    e.rqTitle
    FROM
    rqdepartment d,rqdepartment e
    where 
    d.itilParent_id = e.itilParent_id

  6. #6
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !

    Il n'y a pas aussi un id ?
    J'aurais bien vu un truc du genre :
    id nom parent_id
    1 DSI NULL
    2 Developpement 1
    3 Production 1

    Dans ce cas, ta requête est presque bonne : sauf qu'il faut relier parent_id à l'id :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT d.rqTitle as NomDep,
    e.rqTitle as NomParent
    FROM
    rqdepartment d,rqdepartment e
    WHERE 
    d.itilParent_id = e.id

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  7. #7
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 080
    Points : 30 801
    Points
    30 801
    Par défaut
    La structure de la table que tu présentes ne correspond pas à celle utilisée dans la requête. Est-ce normal ?
    Parent-id correspond-il à l'identifiant du parent dans la même table ?
    Et dans ce cas, quel est le nom de la colonne identifiant ?
    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.

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    oui en faite :

    colonne: itilParent_id c'est le parent_id
    colonne : rqTitle le nom
    rqdepartment d c'est le nom du table departement

    le table que j'ai donner c'etait juste une petite description

    je vais essayé la requette donnée par pacmann
    merci

  9. #9
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    ça marche j'arrive a recuperer le nom. maintenant le soucis est :

    j'obtiens le meme nom sur plusieurs lignes:
    si j'ai un responsable qui a des ticket ouvert et fermé
    j'obtient deux lignes :
    ouvert fermer
    responsable1 10 0
    responsable1 0 6
    je veux avoir :

    ouvert fermer
    responsable1 10 6
    code:
    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
     
    select d.itilParent_id,d.rqTitle as service,e.rqTitle as NomParent,p.LastName,p.FirstName,Responsable_id,
    (Case When (t.Statut="Ouvert") THEN count(t.Statut) ELSE 0 END) as Ouvert,
     
    (Case When (t.Statut="Fermé") THEN count(t.Statut) ELSE 0 END) as Fermé,
     
     
    from Ticket t,sysperson p,department d,department e
    where p.department_id=d.SYSID and
    t.Responsable_id=p.SYSID
    and d.itilParent_id = e.SYSID
     
     and t.Statut in ("Ouvert","Fermé")and t.criticite=$P{parameter1}
     
    group by t.Statut, Responsable_id
    order by  p.LastName

  10. #10
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Ta mise en forme est vraiment horrible... c'est assez dur de comprendre.
    Mais bon, je pense que ton problème, c'est le count et le GROUP BY :

    - Si tu "group by t.Statut, Responsable_id", tu auras une ligne par statut... et je crois que ça ne t'intéresse pas.

    donc tout simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GROUP BY Responsable_id
    - Quand tu fais "count(t.Statut)", ça compte toutes les lignes du groupe pour lesquelles statut est non null... et ce n'est pas ce qui t'intéresse. Pour compter, tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sum(CASE statut WHEN 'ouvert' THEN 1 ELSE 0 END as nbouvert, 
    sum(CASE statut WHEN 'fermé' THEN 1 ELSE 0 END as nbferme
    [EDIT]
    Merci à buns pour la reprise de mise en forme

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  11. #11
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    bjr à tous et désolée pr la mise en forme je n ai p fait attention
    j'ai pu régler le soucis merciiiii
    maintenant j'arrive à afficher le nom du itilParent et meme d'afficher une seule fois le responsable.

    là j'ai toute la requette et il faut juste passer cette requette pour chaque cas comment je peux faire ça?
    en piece jointe le tableau que je dois recuperer . j'arrive a recuperer juste cas 1 et pas pour les autres .


    mon code :


    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
    18
    19
    20
    21
    22
    23
    SELECT 
    d.itilParent_id,
    d.rqTitle AS service,
    e.rqTitle AS NomParent,
    p.LastName,
    p.FirstName,
    Responsable_id,
    (Case When (t.Statut="Ouvert") THEN count(t.Statut) ELSE 0 END) AS Ouvert,
    (Case When (t.Statut="Fermé") THEN count(t.Statut) ELSE 0 END) AS Fermé,
     
    FROM 
     
    Ticket t,sysperson p,department d,department e
     
    WHERE p.department_id=d.SYSID AND
    t.Responsable_id=p.SYSID
    AND
    d.itilParent_id = e.SYSID
    AND 
    t.Statut IN ("Ouvert","Fermé")
     
    GROUP BY Responsable_id
    ORDER BY p.LastName
    Fichiers attachés Fichiers attachés

  12. #12
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Si ton nombre de cas n'est pas fixe ou borné, c'est quasiment impossible.
    Enfin, on peut faire des magouilles... mais ça fait mal au SGBD.

    Ca m'étonne que personne n'ait encore sauté sur l'occasion pour dire "Oh mon dieu, c'est du cosmétique"

    Quel est ton SGBD ?

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

Discussions similaires

  1. [ADO] Récupérer le nom des Tables et des champs
    Par Kephuro dans le forum Bases de données
    Réponses: 2
    Dernier message: 02/06/2008, 17h04
  2. Requête pour récupérer le nom des champs
    Par legillou dans le forum JDBC
    Réponses: 1
    Dernier message: 08/02/2006, 16h09
  3. [TTreeView] Comment récupérer le nom d'un parent ?
    Par EssaiEncore dans le forum Composants VCL
    Réponses: 2
    Dernier message: 17/11/2005, 16h43
  4. récupérer le nom des champs d'une table d'une BDD-page web
    Par mathieu_r dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 09/06/2005, 14h02
  5. Réponses: 2
    Dernier message: 03/02/2005, 13h21

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