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 :

[Oracle] : demande d'aide pour une jointure


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 84
    Points : 70
    Points
    70
    Par défaut [Oracle] : demande d'aide pour une jointure
    Bonjour, je travaille en Oracle mais comme c'est pour faire une vue, j'ai besoin de la requete en sql.

    Voila, j'ai 2 tables que je voudrai bien mettre en une seule


    Historique :
    ID NUMBER
    ENV_ID NUMBER
    SCP_ID NUMBER
    ...

    Environment :
    ID NUMBER
    ENV_NAME

    Il y a un lien entre environment et historique via une clé étrangère (FK) dans Historique

    Voici les données et ce que je voudrais :

    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
    24
    25
    26
    27
    28
    29
     
    Historique
    ID      ENV_ID   SCP_ID
    -----------------------------------------------------------------------
    1        1         27
    2        2         27
    3        3         27
    4        1         33
    5        2         33
     
    ...
     
    Environment
     
    ID     ENV_NAME
    -----------------------------------------------------------------------
    1        DEV
    2        INT
    3        ACC
    4        TEST
    5        PROD
     
     
    Mon but est le suivant : 
     
    SCP_ID         DEV          INT        ACC    TEST    PROD
    -----------------------------------------------------------------------
    27               DEV          INT        ACC
    33               DEV          INT
    QUelqu'un a t'il une solution pour moi pour que je puisse avoir ce résultat???
    Je sèche un peu à vrai dire ...

    Petite précission : le résultat se trouvera dans une vue

    Merci de votre aide


    PS : j'ai simplifié les champs des tables à ceux qui me sont nécessaires. Si ca manque de clareté, demandez moi les scripts.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 150
    Points : 111
    Points
    111
    Par défaut
    Je suis pas sur d'avoir compris ta question mais si tu veux faire une simple jointure c'est comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM Historique,Environment WHERE Historique.env_id = Environment.id

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 84
    Points : 70
    Points
    70
    Par défaut
    non non ...

    la, j'ai une simple jointure trop chargée pour ce dont j'ai besoin.

    Le problème de ta jointure est que j'ai tous les records mais sur plusieurs lignes.

    Or, je voudrais bien que ca ne soient que sur UNE SEULE LIGNE en fonction de SCP_ID

    Merci quand meme

  4. #4
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 82
    Points : 89
    Points
    89
    Par défaut
    il sufit d'ajouter un group by sur ce que tu veu

    ou sinon

    tu peu utiliser un distinct sur le champ que tu veu

    Dans les 2 cas tu doit utiliser la requete que l'on t'a fait précédement

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 150
    Points : 111
    Points
    111
    Par défaut
    Ah ba c'est tout simple, aprés la jointure il faut que tu rajoutes le numero de SCP_ID que tu veux selectionner, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM Historique,Environment WHERE Historique.env_id = Environment.id AND Historique.SCP_ID = 1

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 150
    Points : 111
    Points
    111
    Par défaut
    Citation Envoyé par Hebus73
    il sufit d'ajouter un group by sur ce que tu veu

    ou sinon

    tu peu utiliser un distinct sur le champ que tu veu

    Dans les 2 cas tu doit utiliser la requete que l'on t'a fait précédement

    Ah oui bien vu Hebus, je n'avais pas compris ce qu'il voulait faire, mais en regardant le resultat voulu de son premier post, il s'agit bien d'un GROUP BY SCP_ID

  7. #7
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 82
    Points : 89
    Points
    89
    Par défaut
    normalement ca devrait marcher comme ca

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 84
    Points : 70
    Points
    70
    Par défaut
    ben non, c'est pas ce que je veux non plus (je sais, je suis chiant lol)

    voici la création de la vue en oracle :

    CREATEORREPLACEFORCEVIEW OTCC_DRELMGT.HISTORY_DML_VW
    (SCP_ID, DEV, INT, ACC, TEST, PROD) AS ... un select


    La table environment contients les données suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ID ENV_NAME
    -----------------------------------------------------------------------
    1     DEV
    2     INT
    3     ACC
    4     TEST
    5     PROD
    la table History contient les données suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    ID ENV_ID  SCP_ID ...
    -----------------------------------------------------------------------
    1    1        27
    2    1        33
    3    2        33 
    4    3        33
    5    4        33
    6    5        33
    7    1        48
    8    2        27
    9    3        27
    10  1        51

    Le résultat que je voudrais obtenir dans ma vue est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ID   SCP_ID    DEV    INT   ACC  TEST   PROD
    -----------------------------------------------------------------------
    1    27           dev    int     
    2    33           dev    int     acc   test    prod
    3    48           dev 
    4    51           dev

    ce que vous ne me mets pas les infos voulues sur une seule ligne ..

    J'espère avoir été plus clair cette fois ... lol

  9. #9
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238

  10. #10
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 82
    Points : 89
    Points
    89
    Par défaut
    tu fais:


    select ID, SCP_ID, DEV, INT, ACC, TEST, PROD from les_tables where les jointures group by SCP_ID

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 84
    Points : 70
    Points
    70
    Par défaut
    ok merci les gars mais cette requete a pu etre détournée ...

    elle est donc inutile à présent.

    Merci de votre aide

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

Discussions similaires

  1. Demande d'aide pour une requête avec jointure
    Par marcoxavier dans le forum Développement
    Réponses: 8
    Dernier message: 26/05/2015, 16h04
  2. Demande d'aide pour une formation SDL/OpenGL.
    Par Squalthor dans le forum API graphiques
    Réponses: 14
    Dernier message: 13/07/2006, 20h24
  3. Réponses: 2
    Dernier message: 02/03/2006, 11h57
  4. [VBA] Excell : demande d'aide pour une macro
    Par Fealendril dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/01/2006, 16h28
  5. Demande d'aide pour une requête
    Par arkzor dans le forum Requêtes
    Réponses: 3
    Dernier message: 28/12/2004, 02h40

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