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 d'analyse croisée


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut Requête d'analyse croisée
    Salut,

    Est-il possible de faire une requête d'analyse croisée, car je n'ai pas réussi à trouver la moindre explication !!!

    Dans access la syntaxe est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    TRANSFORM Count(...) AS ...
    SELECT ...
    FROM ...
    WHERE ...
    GROUP ...
    PIVOT ...
    Mais dans Oracle ou norme SQL, je n'ai rien trouvé de la sorte. Avez-vous une solution ???

    Merci.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    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 454
    Par défaut
    Essayez d'être plus précis dans votre besoin, je n'ai aucune idée de ce que vous voulez faire.

  3. #3
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Sous Access on peut pour les données suivantes avoir cela :
    Données :
    Nom/Mag/Pays
    A/001/FR
    A/001/GB
    A/002/FR
    ...
    Et on peut donc avoir par requête analyse croisée:
    Nom/Mag/FR/GB
    A/001/1/1
    A/002/1/null

    J'espère avoir été assez clair.

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    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 454
    Par défaut
    D'accord, c'est ce qu'on appelle un PIVOT.
    En SQL, on le code ainsi. Notez qu'il n'est absolument pas dynamique :
    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
    WITH MaTable AS
    (
    select 'A' as c1, '001' as c2, 'FR' as cty from dual union all
    select 'A'      , '001'      , 'GB'        from dual union all
    select 'A'      , '002'      , 'FR'        from dual
    )
      select c1, c2,
             max(case cty when 'FR' then 1 end) as FR,
             max(case cty when 'GB' then 1 end) as GB
        from MaTable
    group by c1, c2;
     
     
    C1	C2	FR	GB
    A	001	1	1
    A	002	1

  5. #5
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Le problème est que je ne sais pas combien il y a de pays...

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    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 454
    Par défaut
    Dans ce cas il faut construire votre requête de manière dynamique à l'aide de PL/SQL puis l'exécuter, ou alors garder votre requête initiale et faire le pivot dans un langage de programmation tiers.

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

Discussions similaires

  1. Requête pour cumuler une requête d'analyse croisée
    Par helouadi dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 24/10/2007, 16h00
  2. Requête d'analyse croisée + VBA
    Par sophiesallee dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 31/08/2007, 10h02
  3. Union de 2 requêtes d'analyse croisée
    Par Bqrt37 dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 27/06/2007, 09h20
  4. Problème dans requête pour analyse croisée
    Par benjisan dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 14/06/2007, 09h54
  5. Etat issu d'une requête d'analyse croisée
    Par loutsky dans le forum Access
    Réponses: 3
    Dernier message: 18/03/2006, 16h19

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