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 17/07/2011, 19h29   #1
Candidat au titre de Membre du Club
 
Inscription : février 2009
Messages : 46
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 46
Points : 13
Points : 13
Par défaut Afficher colonne vide dans une requete analyse croisée

Bonjour,

je gère un site d'inscription pour une compétition avec différentes catégories de population. Les gens s'inscrivent au fur et à mesure et pour le moment, je n'ai pas de reporter mais j'en aurai de façon sûre.

J'ai une requête d'analyse croisée où je souhaite afficher les comptes de personnes en fonction des populations au fur et à mesure. Je souhaiterai afficher la colonne "Reporter" avec des zéros en attendant d'en avoir qui s'incrivent.

Code :
1
2
3
4
5
6
7
TRANSFORM Nz(Count([nom]),0) AS Expr1
SELECT T_Equipe.pays, Nz(Count([nom]),0) AS Total_Equipe
FROM T_Type_Membre RIGHT JOIN (T_Equipe LEFT JOIN T_Membre ON T_Equipe.id = T_Membre.id_pays) ON T_Type_Membre.N° = T_Membre.type_person
WHERE (((T_Type_Membre.Type_Membre)="Player" Or (T_Type_Membre.Type_Membre)="Adults" Or (T_Type_Membre.Type_Membre)="Reporter" Or (T_Type_Membre.Type_Membre)="Chaperon" Or (T_Type_Membre.Type_Membre) Is Null))
GROUP BY T_Equipe.pays
ORDER BY T_Equipe.pays
PIVOT T_Type_Membre.Type_Membre;
J'utilise cette requête comme source d'un formulaire ensuite qui m'affiche mes totaux et forcément, dans la colonne "Reporter", j'ai un #erreur pour le moment.
julius26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 06h40   #2
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 040
Points : 11 040
Bonjour,

Et si on trichait un peu ?

Au départ : tu inscris un participant fictif dans chaque catégorie.
Ensuite dans tes calculs, tu retranches une unité.

Le problème n’est pas résolu, mais il n’est plus gênant.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/07/2011, 11h59   #3
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 415
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 415
Points : 4 446
Points : 4 446
Bonjour julius26, salut Claude

Plusieurs trucs…
Code sql :
…SELECT T_Equipe.pays, Nz(Count([nom]),0) AS Total_Equipe

Le champ calculé Total_Equipe figurant déjà comme "valeur", il ne devrait pas être comme en-tête de ligne. A retirer il me semble.
Je me demande également si on ne pourrait pas supprimer la condition IS NULL sur Type_Membre.

Citation:
Je souhaiterai afficher la colonne "Reporter" avec des zéros en attendant d'en avoir qui s'inscrivent.
Dans la fenêtre des propriétés de la requête, il y en a une qui s’appelle "En-tête des colonnes" à compléter avec :
"Players";"Adultes";"Reporter";"Chaperon"

Au niveau SQL :
Code sql :
…PIVOT T_Type_Membre.Type_Membre IN ("Players","Adultes","Reporter","Chaperon");
Cela devrait donner le résultat souhaité, et sauf erreur, je pense même que l’on peut supprimer tout le critère WHERE .

Au final, je verrais bien :
Code sql :
1
2
3
4
5
6
TRANSFORM Nz(Count([nom]),0) AS Expr1
SELECT T_Equipe.pays
FROM T_Type_Membre RIGHT JOIN (T_Equipe LEFT JOIN T_Membre ON T_Equipe.id = T_Membre.id_pays) ON T_Type_Membre.N° = T_Membre.type_person
GROUP BY T_Equipe.pays
ORDER BY T_Equipe.pays
PIVOT T_Type_Membre.Type_Membre IN ("Players","Adults","Reporter","Chaperon");

à voir...
f-leb 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 13h01.


 
 
 
 
Partenaires

Hébergement Web