Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/05/2011, 11h21   #1
Invité de passage
 
Inscription : mars 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 26
Points : 3
Points : 3
Par défaut modif entete colonne dans requete pivot

Bonjour,

J'ai la requête pivot suivante qui fonctionne correctement :

Code :
1
2
3
4
5
TRANSFORM Sum(Commission.Base) AS Somme
SELECT Format([DateComp],"q") AS [Trim]
FROM Commission
GROUP BY [DateComp]
PIVOT Commission.CodeEmp;
Mes entêtes de colonnes sont donc des codes employés.
Je voudrais non pas afficher les codes mais les noms des employés et donc 'remplacer' Commission.CodeEmp par une sous requête du genre
Code :
SELECT Employe.Nom FROM Employe WHERE Employe.Code = Commission.Code
mais je ne sais pas comment inclure cette sous requête pour que ça fonctionne ...?
marinaetsonchat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 11h46   #2
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Bonjour Marinaetsonchat,

Le mieux est de créer une requête sur ta table Commission pour retrouver le nom des employés, et d'effectuer ta requête "analyse-croisée" à partir de cette requête.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 12h19   #3
Invité de passage
 
Inscription : mars 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 26
Points : 3
Points : 3
J'ai essayé aussi dans ce sens j'ai fait une requête qui me retourne les résultats sous cette forme :

Employé Somme
Toto 1000
Titi 1500
Tutu 1300

et ce que je voudrais c'est afficher sous cette forme :
Toto Titi Tutu
1000 1500 1300

En réalité il me faudrait même passer de :
Employé Somme Somme2
Toto 1000 3000
Titi 1500 3500
Tutu 1300 4000

à :
Toto Titi Tutu
1000 1500 1300
3000 3500 4000

mais je vois pas comment faire ça en requête analyse croisée car mon entête de colonne c'est Employé, mes valeurs c'est Somme, et il ne faudrait pas d’entête de ligne mais c'est impossible.
marinaetsonchat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 13h12   #4
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Citation:
Envoyé par Marinaetsonchat
.../... et il ne faudrait pas d’entête de ligne .../...
==> mais si, ton entête de ligne est Trim.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 13h43   #5
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 644
Points : 3 895
Points : 3 895
Salut Richard_35 et bienvenu marinaetsonchat,

Code SQL :
1
2
3
4
5
TRANSFORM Sum(Commission.Base) AS Somme
SELECT Format([DateComp],"q") AS [Trim]
FROM (SELECT Commission.*, Employe.Nom FROM Commission LEFT JOIN Employe ON Employe.Code = Commission.CodeEmp)
GROUP BY [DateComp]
PIVOT Employe.Nom;

Il te faut obligatoirement une entête de ligne pour une requête analyse croisée.
vodiem est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 14h20   #6
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Bonjour Vodiem,

Par souci de maintenance et de performance, j'aurais plutôt travaillé en amont : fournir à la requête "analyse croisée" une table "pré-machée".

Mais bon, cela devrait fonctionner aussi.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 15h01   #7
Invité de passage
 
Inscription : mars 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 26
Points : 3
Points : 3
Je suis partie d'une requête qui ne calcule rien mais qui donne juste les 3 champs de base au bon format : le nom, la date, et le champ Base, c'est la requête d'analyse croisée qui fait le reste.

Pour revenir sur ma question de base; je ne peux donc absolument pas utiliser de sous requête dans une requête d'analyse croisée ?
marinaetsonchat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 15h11   #8
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Citation:
Envoyé par Marinaetsonchat
.../... je ne peux donc absolument pas utiliser de sous requête dans une requête d'analyse croisée ?
==> tu n'as pas lu la proposition de Vodiem ?


Personnellement, je pré-mâcherais le travail de la requête "analyse croisée" pour des raisons de maintenance et de performance.
Citation:
Envoyé par Marinaetsonchat
Je suis partie d'une requête qui ne calcule rien mais qui donne juste les 3 champs de base au bon format : le nom, la date, et le champ Base
==> tu peux modifier cette requête pour arriver à :
- nom
- Format([DateComp],"q") as Trim
- Base
==> et baser ta requête analyse croisée sur celle-ci.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h09.


 
 
 
 
Partenaires

Hébergement Web