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 :

Requête SQL, multi-tables sur plusieurs colonnes


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 4
    Par défaut Requête SQL, multi-tables sur plusieurs colonnes
    Bonjour,

    Excuser moi de ma laconisme, mais j'ai déjà remarqué que trop de parle brouille les choses.

    Je dispose d'une BD sur Oracle.
    Les tables qui m'intéressent sont :
    TB_PRODUIT
        "ID_PRO"         NUMBER(10,0),
        "NUM_PRO"        VARCHAR2(25 BYTE) NOT NULL ENABLE,
        "NOM_PRO"        VARCHAR2(25 BYTE) NOT NULL ENABLE,
        "DESCRIPTIF_PRO" VARCHAR2(25 BYTE),
        "ID_COUL"        NUMBER(10,0),
        "ID_TAILLE"      NUMBER(10,0),
        "ID_FOUR"        NUMBER(10,0),
        "QUANTITE_PRO"   NUMBER(10,0)
      
    TB_FOURNISSEUR
        "ID_FOUR"         NUMBER(10,0),
        "NOM_FOUR"        VARCHAR2(50 BYTE) NOT NULL ENABLE,
        "ADRESSE_FOUR"    VARCHAR2(50 BYTE) NOT NULL ENABLE,
        "NTELEPHONE_FOUR" VARCHAR2(50 BYTE) NOT NULL ENABLE,
        "EMAIL_FOUR"      VARCHAR2(50 BYTE),
        "NTVA_FOUR"       VARCHAR2(50 BYTE),
        "ID_LIEU"         NUMBER(10,0)
    
    TB_TAILLE
        "ID_TAILLE"      NUMBER(10,0),
        "LIBELLE_TAILLE" VARCHAR2(10 BYTE),
    
    TB_COULEUR
        "ID_COUL"  NUMBER(10,0),
        "NOM_COUL" VARCHAR2(50 BYTE) NOT NULL ENABLE,
        "NUM_COUL" VARCHAR2(10 BYTE)
    Voici deux requêtes ainsi que leurs sorties qui vont, j'espère, vous aider à comprendre le tout. Je n'ai pas mis toutes les lignes, les titres non plus vu que vous les avez dans les requêtes.

    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
    SELECT
      tb_produit.id_pro, 
      tb_produit.num_pro, 
      tb_produit.nom_pro, 
      tb_couleur.num_coul, 
      tb_couleur.nom_coul, 
      tb_fournisseur.nom_four 
    FROM 
      tb_produit, 
      tb_fournisseur, 
      tb_couleur 
    WHERE 
      tb_fournisseur.id_four = '5' 
    AND tb_produit.id_coul = tb_couleur.id_coul 
    AND tb_produit.id_four = tb_fournisseur.id_four 
    AND tb_produit.num_pro = '2034' 
    AND tb_produit.nom_pro = 'Whale' 
    AND tb_couleur.num_coul = '424' 
    AND tb_couleur.nom_coul = 'Smoke';
     
    106   2034   Whale   424   Smoke   Switcher SA  
    107   2034   Whale   424   Smoke   Switcher SA                                        
    108   2034   Whale   424   Smoke   Switcher SA                                        
    70    2034   Whale   424   Smoke   Switcher SA                                        
    71    2034   Whale   424   Smoke   Switcher SA
    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
    SELECT 
      tb_produit.id_pro, 
      tb_produit.quantite_pro, 
      tb_taille.libelle_taille 
    FROM 
      tb_produit, 
      tb_taille 
    WHERE 
      tb_produit.num_pro = '2034' 
    AND tb_produit.nom_pro = 'Whale' 
    AND tb_produit.id_taille = tb_taille.id_taille;
     
    70   10 M              
    71   12 L              
    72   10 XL
    Vous l'aurez compris, ça parle de produit, plus précisément de Tshirt.

    Ce que je désire faire c'est remplir une table. La quelle disposera des informations comme ceci...(abrégées)

    Num_pro - Nom_pro - Des_pro - Num_coul - Nom_coul - XS - S - M - L - XL 
    2034        Whale                  424      Smoke    0   0  10  12   10
    Ce que je désire faire, regrouper tous les même produits sur une seule ligne, et renseigner les tailles par leurs quantités.

    Pourriez-vous m'aider ?
    Est-il possible de regrouper cela sur une même requête SQL ?


    Amicalement

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Tu regroupes les 2 requêtes, fais un group by (Num_pro - Nom_pro - Des_pro - Num_coul - Nom_coul) et pour les tailles, dans le select, tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SUM(DECODE(taille, 'XS', quantite_pro)) taille_XS, SUM(DECODE(taille, 'S', quantite_pro)) taille_S, ..

Discussions similaires

  1. [PHP 5.3] Affichage du résultat d'une requête multi-table sur plusieurs pages
    Par leaston dans le forum Langage
    Réponses: 2
    Dernier message: 20/08/2011, 16h19
  2. [2.5.2] Table sur plusieurs colonnes dans une page
    Par Kobe Horserider dans le forum BIRT
    Réponses: 2
    Dernier message: 17/08/2010, 15h23
  3. Alter table sur plusieurs colonnes
    Par maverick91 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 20/06/2008, 06h31
  4. [Debutant] Requête SQL Multi-Tables
    Par Superbretzel dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 16/02/2008, 11h47

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