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 relation 1,n


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 133
    Points : 59
    Points
    59
    Par défaut requête relation 1,n
    Salut

    Voilà,
    J'ai 2 tables :

    table 1

    Id, champ1, champ2, etc..
    0, xxxx, yyyy
    1, zzzz, kkkk


    table 2

    Id, IdTable1, val1, val2
    0, 0, aa, 12
    1, 0, bb, 13
    2, 0, cc, 25
    3, 1, aa, 8
    4, 1, bb, 6
    5, 1, dd, 65


    J'ai donc une relation 1,n entre mes 2 tables. Je voudrai savoir s'il est possible avec une requête d'obtenir plusieurs lignes de la table 2 en colonne
    je voudrai comme résultat:

    0, 12 , 13 , 25
    1, 8 , 6 , 65

    Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,

    Ceci devrait être géré par votre applicatif et non votre SGBD. C'est de l'habillage.

    On peut répondre partiellement à ce problème avec des gadget du style "PIVOT" (cherchez sur ce forum).

    Le problème dans votre cas, étant la relation "n".
    Si ce "n" a une occurrence maximale vous allez pouvoir vous en sortir, sinon ça risque d'être compliqué.

    Accessoirement quel est votre SGBD ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 133
    Points : 59
    Points
    59
    Par défaut
    Merci pour la réponse

    Certes j'ai une relation n mais je ne vais aller chercher que 4 valeurs précises parmi les n lignes ('aaa','bbbb' ...)

    Je suis sur sql server

    Le fait d'écrire mon problème ci dessus m'a permis d'affiner mes recherches
    Un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Select 
    SUM(CASE val1 when 'aaa' then val2 END) as a1,
    SUM(CASE val1 when 'bbb' then val2 END) as a2,
    SUM(CASE val1 when 'ccc' then val2 END) as a3
    where
    etc...
    pourrait marcher si val2 n'était pas en varchar(MAX) qui fait que cela ne fonctionne pas...

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Ca fonctionne pas ne veut rien dire.
    c'est quoi l'erreur ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 133
    Points : 59
    Points
    59
    Par défaut
    ouai excuse moi

    SUM(VARCHAR(MAX)) n'est pas possible...

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Utilisez une formule d'agrégation qui comprend les varchar comme MIN ou MAX.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 133
    Points : 59
    Points
    59
    Par défaut
    Bon au final j'ai suivi le conseil de Punkoff et j'ai gérer cela du coté application.
    C'est résolu pour moi, merci

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

Discussions similaires

  1. [AC-2010] Conflit entre requête, relations et champs relationnels nuls
    Par Beaver dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 30/03/2015, 16h47
  2. Requête relation enfant parent : 1 table
    Par irid dans le forum Développement
    Réponses: 1
    Dernier message: 12/01/2011, 14h26
  3. Requête relation Many to Many
    Par alys56 dans le forum JPA
    Réponses: 1
    Dernier message: 20/04/2008, 12h20
  4. Relations et Requêtes...
    Par Smint dans le forum Access
    Réponses: 3
    Dernier message: 16/09/2005, 11h23
  5. [HTTP]Créer une requête http multipart/related
    Par jothi35 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 05/04/2005, 15h32

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