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

Oracle Discussion :

Tableau croisé/ Pivot?


Sujet :

Oracle

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 12
    Points : 2
    Points
    2
    Par défaut Tableau croisé/ Pivot?
    Bonjour tous le monde,

    Je suis totalement novice en SQL. Après avoir chercher et trouver une question presque similaire à la mienne dans le forum, je n'ai malheuresement pas réussi à résoudre mon problème. Voilà, mon problème:


    J'ai effectué une requête sous Business Object qui me renvoie comme résultat :


    Région.....client.....id_mesure...........durée_mesure
    ---------------------------------------------------
    A........tomate........10.......................20
    B........patate........11........................30
    B........salade ........12 .......................20
    C........oeuf.. ........13 ........................50
    B........patate ........14........................20
    C........oeuf............15........................10
    C........oeuf............16........................10




    Je voudrais afficher un résultat comme ceci (avec une requête codé en SQL):

    Code :

    ......................Nbre_de_mesure........Somme_Durée_totale
    ----------------------------------------------------------
    A...|...tomate.|...........1.......................20
    B...|...patate..|...........2.......................50
    .....|...salade..|...........1.......................20
    C...|...oeuf.....|...........3.......................70


    Est-ce que cela est possible? Sachant que les données 'Région, Client, Id_mesure' sont dans une table, et 'durée_mesure' dans une autre.

    J'avais pensé à faire cela avec un pivot.

    Merci de votre aide

  2. #2
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Points : 1 197
    Points
    1 197
    Par défaut
    Salut,

    Ca n'a rien avec le pivot

    Voici un gabarit de la requette.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    with t  as ( select  Region_client, id_mesure ,duree_mesure  tu mets ton select  + jointure entre les deux tables)
    select Région_client, count(id_mesure ),sum(duree_mesure ) 
    from t
    group by Région_client
    Peux tu poster la dscription de tes deux tables?

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    impréssioné par la rapidité de réponse!

    En tout cas merci, je vais essayé çà.

    Sinon, qd tu mets "with t", le "t" est pour la table d'où provient les mesures j'imagine... mais j'ai deux tables, donc je met "with t1, t2" ?

    Merci en tout cas, surtout pour ta réactivité.

  4. #4
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Points : 1 197
    Points
    1 197
    Par défaut
    Au lieu d'utiliser une subquery, on utilise le with avec l'alias t ( tu peux le changer)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    with tt as  (select  t1.Region client, t1.id_mesure,t2.duree_mesure  
    from nom_table1 t1, nom_table2 t2 -- tu mets les noms réels de tes table
    where t1.champ1=t2.champ -- tu mets ta condition de jointure
    )
    SELECT Region_client, count(id_mesure ),sum(duree_mesure ) 
    FROM tt
    GROUP BY Region_client

  5. #5
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Ok, merci bcp pour cette réponse très claire. Dès que je peux, je vais essayer, car je n'ai pas accès à Oracle comme je veux (je n'ai pas l'autorisation d'utiliser une autre commande que "Select", il faut donc que je fasse une demande).

    Encore merci salim11.

  6. #6
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Bon,

    Mon code est écrit, et a l'air correct. Cependant, je ne peux pas le tester, car lorsque je lance ma requête, BO m'affiche le message suivant:
    "Select est la seule commande autorisée (QPF00001)"

    Est ce parce que ma version (6.3.1) de BO soit trop ancienne? ou plutot c'est parce que BO interdit les les commandes telles que INSERT, UPDATE ou DELETE si jamaisl'utilisateur décidait de modifier le SQL dans le but d'insérer, de modifier ou de supprimer des données dans la base de données (pourtant l'instruction "WITH" n'a pas cet effet).

    ?

Discussions similaires

  1. Tableau croisé dynamique via power pivot
    Par BENNASR dans le forum Excel
    Réponses: 1
    Dernier message: 08/06/2015, 15h36
  2. Algorithme de pivot de table (tableau croisé dynamique)
    Par black-key dans le forum Algorithmes et structures de données
    Réponses: 0
    Dernier message: 17/11/2014, 20h46
  3. [Débutant] [MATLAB][Excel][Automation] Tableau croisé dynamique - Pivot table
    Par ydeseved dans le forum MATLAB
    Réponses: 4
    Dernier message: 13/11/2013, 10h00
  4. Réponses: 1
    Dernier message: 25/08/2010, 10h50
  5. Tableau Croisé Dynamique(pivot table)
    Par JAKman dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 12/02/2008, 07h40

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