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

Access Discussion :

Union de requêtes Analyse Croisée


Sujet :

Access

  1. #1
    Membre du Club
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    56
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 56
    Points : 51
    Points
    51
    Par défaut Union de requêtes Analyse Croisée
    Bonjour

    Est-il possible de faire une Union de Requête Analyse Croisée ?

    Voici mon code SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    (TRANSFORM Sum([Production par article].Quantité) AS SommeDeQuantité
    SELECT [Production par article].Article
    FROM [Mois de l'année] LEFT JOIN [Production par article] ON [Mois de l'année].[Mois de l'année] = [Production par article].Mois
    GROUP BY [Production par article].Article
    PIVOT [Mois de l'année].[Mois de l'année])
    UNION (
    TRANSFORM (-1)*Sum([Choix Ordre].[Quantité]/[Quantité diviseur +].[SommeDeQuantité]) AS Emploi
    SELECT [Choix Ordre].Article
    FROM [Mois de l'année] LEFT JOIN ([Choix Ordre] RIGHT JOIN [Quantité Diviseur +] ON [Choix Ordre].Mois = [Quantité Diviseur +].[Mois de l'année]) ON [Mois de l'année].[Mois de l'année] = [Quantité Diviseur +].[Mois de l'année]
    GROUP BY [Choix Ordre].Article
    PIVOT [Mois de l'année].[Mois de l'année]);
    Je précise que les deux requêtes fonctionnent individuellement.
    Lorsque j'essaie une Union, il me renvoie le message d'erreur suivant :

    Impossible d'utiliser comme sous-requête l'analyse croisée d'une colonne non-fixe.
    Mes deux requête comportent pourtant les même colonnes quelquesoit les paramètres rentrés !
    Je ne comprends pas ce message

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    essaies ceci
    PIVOT [Mois de l'année].[Mois de l'année] in(1,2,3,4,5,6,7,8,9,10,11,12))
    (j'espère que tu utilises un calendrier gégorien)
    Elle est pas belle la vie ?

  3. #3
    Membre du Club
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    56
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 56
    Points : 51
    Points
    51
    Par défaut
    Super ! Merci Random
    J'ai utilisé ce code adapté à mon Format de Date :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PIVOT [Mois de l'année].[Mois de l'année] in (01 - janv,02 - févr,03 - mars,04 - avr,05 - mai,06 - juin,07 - juil,08 - août,09 - sept,10 - oct,11 - nov,12 - déc))
    Par contre, je perd l'approximation à deux chiffres après la virgule sur le Champs Emploi ma deuxième requête. C'est grave Docteur ?

    Que me conseilles-tu pour distinguer les deux requêtes ? J'essaie d'insérer une ligne entre les deux ou de griser la première ? Qu'est-ce qui est le plus facile ?

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    tu crées une table item avec un champ valpossible en text
    dans valpossible tu ajoutes toutes les possibilités de ta table 1 et de ta table 2
    par exemple
    200601
    200602
    ...
    200612
    et

    2006T1
    2006T2

    ensuite
    pivot in (select valpossible from item)
    sinon il faut ajouter à pivot in
    (200601....200612,2006T1,2006t2) mais tu peux buter sur des incompatbilités
    de type
    donc pivot(cchaine(mavaleur)) in ('1'....
    Elle est pas belle la vie ?

  5. #5
    Membre du Club
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    56
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 56
    Points : 51
    Points
    51
    Par défaut
    Euh... tu réponds à quoi là ?
    Mon problème initial est résolu avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PIVOT [Mois de l'année].[Mois de l'année] in (01 - janv,02 - févr,...)
    J'ai juste un petit problème d'approximation car je suis un peu perdu sans l'interface Access qui me permettait de choisir le Format de mon champs Emploi.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    ben ti ton format date te chagrine
    au niveau select fais select mois(madate) & "- " & format("MMM",madate)
    Elle est pas belle la vie ?

  7. #7
    Membre du Club
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    56
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 56
    Points : 51
    Points
    51
    Par défaut
    En fait je n'avais plus l'approximation à deux chiffres après la virgule sur la valeur renvoyée par ma seconde analyse croisée.

    J'ai résolu avec un petit format$(mon expression, "0,00") ajouté dans la deuxième requête.

    Merci Random

  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Points : 10
    Points
    10
    Par défaut besoin d'aide
    slt Randon je vous que vous avez plus de notions que moi. voila j'ai a peu près le pb avec une application que je developpe pour mon stage et je suis bloqué au niveau de l'union entre les réquètes d'analyse croisées.Donne moi un coup de mains sur le code suivant STP.
    en gros j'ai deux requètes analyse croisées qui fonctionnent très bien mais l'union des deux ne donne pas le resultat que je veux:

    TRANSFORM Count(GLOBALE_F.STATUS) AS CompteDeSTATUS
    SELECT GLOBALE_F.CODE_PROCESSUS, GLOBALE_F.AFF_CTRE_LIB, GLOBALE_F.ANNEE_AFF, Count(GLOBALE_F.STATUS) AS [Total de STATUS]
    FROM GLOBALE_F
    WHERE (((GLOBALE_F.STATUS)="CA"))
    GROUP BY GLOBALE_F.CODE_PROCESSUS, GLOBALE_F.AFF_CTRE_LIB, GLOBALE_F.ANNEE_AFF, GLOBALE_F.STATUS
    PIVOT Format([DATE_AFFECTATION_AU_CA],"mmm") In ("janv","févr","mars","avr","mai","juin","juil","août","sept","oct","nov","déc");

    et:

    TRANSFORM Count(GLOBALE_F.STATUS) AS CompteDeSTATUS
    SELECT GLOBALE_F.CODE_PROCESSUS, GLOBALE_F.AFF_CTRE_LIB, GLOBALE_F.ANNEE_AFF, Count(GLOBALE_F.STATUS) AS [Total de STATUS]
    FROM GLOBALE_F
    WHERE (((GLOBALE_F.STATUS)="IR"))
    GROUP BY GLOBALE_F.CODE_PROCESSUS, GLOBALE_F.AFF_CTRE_LIB, GLOBALE_F.ANNEE_AFF, GLOBALE_F.STATUS
    PIVOT Format([DATE_AFFECTATION_AU_CA],"mmm") In ("janv","févr","mars","avr","mai","juin","juil","août","sept","oct","nov","déc");
    et toutes les deux se prentent comme suit:
    CODE_PROCESSUS AFF_CTRE_LIB ANNEE_AFF Total de STATUS janv fév mar ainsi de suite et moi j'aimerais afficher les resultats des deux requètes cote à cote cad:
    CODE_PROCESSUS AFF_CTRE_LIB ANNEE_AFF Total de STATUS jCA jIR fCA fIR et je bloque completement.
    j'ai vraiment besoin d'aide car j'ai plus le temps tout avis est donc la bienvenue
    cordialement

  9. #9
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Points : 10
    Points
    10
    Par défaut besoin d'aide
    slt Randon je vous que vous avez plus de notions que moi. voila j'ai a peu près le pb avec une application que je developpe pour mon stage et je suis bloqué au niveau de l'union entre les réquètes d'analyse croisées.Donne moi un coup de mains sur le code suivant STP.
    en gros j'ai deux requètes analyse croisées qui fonctionnent très bien mais l'union des deux ne donne pas le resultat que je veux:

    TRANSFORM Count(GLOBALE_F.STATUS) AS CompteDeSTATUS
    SELECT GLOBALE_F.CODE_PROCESSUS, GLOBALE_F.AFF_CTRE_LIB, GLOBALE_F.ANNEE_AFF, Count(GLOBALE_F.STATUS) AS [Total de STATUS]
    FROM GLOBALE_F
    WHERE (((GLOBALE_F.STATUS)="CA"))
    GROUP BY GLOBALE_F.CODE_PROCESSUS, GLOBALE_F.AFF_CTRE_LIB, GLOBALE_F.ANNEE_AFF, GLOBALE_F.STATUS
    PIVOT Format([DATE_AFFECTATION_AU_CA],"mmm") In ("janv","févr","mars","avr","mai","juin","juil","août","sept","oct","nov","déc");

    et:

    TRANSFORM Count(GLOBALE_F.STATUS) AS CompteDeSTATUS
    SELECT GLOBALE_F.CODE_PROCESSUS, GLOBALE_F.AFF_CTRE_LIB, GLOBALE_F.ANNEE_AFF, Count(GLOBALE_F.STATUS) AS [Total de STATUS]
    FROM GLOBALE_F
    WHERE (((GLOBALE_F.STATUS)="IR"))
    GROUP BY GLOBALE_F.CODE_PROCESSUS, GLOBALE_F.AFF_CTRE_LIB, GLOBALE_F.ANNEE_AFF, GLOBALE_F.STATUS
    PIVOT Format([DATE_AFFECTATION_AU_CA],"mmm") In ("janv","févr","mars","avr","mai","juin","juil","août","sept","oct","nov","déc");
    et toutes les deux se prentent comme suit:
    CODE_PROCESSUS AFF_CTRE_LIB ANNEE_AFF Total de STATUS janv fév mar

    ainsi de suite et moi j'aimerais afficher les resultats des deux requètes cote à cote cad:

    CODE_PROCESSUS AFF_CTRE_LIB ANNEE_AFF Total de STATUS janCA janIR févCA féIR
    et je bloque complétement.
    j'ai vraiment besoin d'aide car j'ai plus le temps tout avis est donc la bienvenue.
    cordialement

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

Discussions similaires

  1. [AC-2007] Associer des requêtes analyse croisée en requête union
    Par Nounours1 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 05/06/2012, 19h44
  2. [AC-2007] Union avec requête analyse croisée
    Par ALEX80800 dans le forum Access
    Réponses: 8
    Dernier message: 23/12/2011, 16h30
  3. Réponses: 7
    Dernier message: 04/09/2011, 18h14
  4. [AC-2007] Requête analyse croisée => pb pour requête union
    Par Tipstitou dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 05/06/2009, 12h00
  5. Requêtes analyses croisées sous SQL Server 2000
    Par callo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/09/2005, 19h27

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