Bonjour,
voici mon problème:
j'ai stockée dans une table temporaire les enregistrements de ma base pour sur une tranche de dates entrées par l'utilisateur;
Ensuite une requête analyse croisée,effectuée sur cette table me donne pour la période sélectionnée:
- en ligne les noms de commerciaux
- en colonne les états des devis correspondant aux affaires qu'ils ont réalisés (en attente, annulé, refusé ou conclus) avec pour chacune de ces possibilités le nombre de devis de chaque type pour chacun des commerciaux.
Le but est en suite de réaliser un état sous forme de petit tableau bilan, avec une colonne me calculant les statistiques de réussite de chacun (soit la formule: (Nombre devis conclus/nombre devis total)*100.
J'ai donc créé la requête suivante:
SELECT [NomVendeur],[en attente],[conclu],[annulé],[refusé], ((nz([conclu],0))/(nz([conclu],0)+nz([en attente],0)+nz([annulé],0)+nz([refusé],0))*100 FROM AnalyseCroisée
Cette requête fonctionne parfaitement, mais j'ai un petit problème:
si sur la tranche de date entrée par l'utilisateur il n'y a par exemple aucun devis annulé, je n'ai pas de colonne [annulé] dans le résultat de ma requête analyse croisée.
Quand j'exécute la requête suivante, qui essaie de me sélectionner les champs [annulé] de ma table temporaire, j'obtiens alors le message "le moteur de la base de données Microsoft Jet ne reconnaît pas [annulé] en tant que nom de champ ou expression correcte", puisque ce champ n'existe même pas!
Dans les cas ou sur la tranche de dates étudiées tous les types de devis sont représentés, la requête fonctionne et j'obtiens le résultat désiré.
J'aimerais donc savoir:
-s'il est possible de préciser dans une requête que la sélection du champ ne se fasse que s'il existe?
-si pas possible comment m'y prendre?
Merci d'avance pour votre aide
Partager