Champs calculés dans un état basé sur des requêtes pivot
Bonjour à tous.
Cela fait plusieurs heures que je galère sur le sujet suivant. J'ai un état qui repose sur la requête suivante :
Code:
1 2
| SELECT RqtPivotHeuresPerifParEtablissement.NumAction, Actions.Intitule, Actions.Fin, Actions.Type, Etablissements.Nom, [Personnels].[Prenom] & " " & UCase([Personnels].[Nom]) AS CFC, Production.Lib, AnnexeBudgetaire.HeuresPerif AS Prevu, [RqtPivotHeuresPerifEtablisementAn-1].[2012], RqtPivotHeuresPerifParEtablissement.[1], RqtPivotHeuresPerifParEtablissement.[2], RqtPivotHeuresPerifParEtablissement.[3], RqtPivotHeuresPerifParEtablissement.[4], RqtPivotHeuresPerifParEtablissement.[5], RqtPivotHeuresPerifParEtablissement.[6], RqtPivotHeuresPerifParEtablissement.[7], RqtPivotHeuresPerifParEtablissement.[8], RqtPivotHeuresPerifParEtablissement.[9], RqtPivotHeuresPerifParEtablissement.[10], RqtPivotHeuresPerifParEtablissement.[11], RqtPivotHeuresPerifParEtablissement.[12]
FROM (RqtPivotHeuresPerifParEtablissement LEFT JOIN [RqtPivotHeuresPerifEtablisementAn-1] ON RqtPivotHeuresPerifParEtablissement.IdBudgetaire = [RqtPivotHeuresPerifEtablisementAn-1].IdBudgetaire) LEFT JOIN (Production RIGHT JOIN (Personnels RIGHT JOIN (Etablissements RIGHT JOIN (AnnexeBudgetaire RIGHT JOIN Actions ON AnnexeBudgetaire.N° = Actions.IdBudgetaire) ON Etablissements.N° = Actions.IdEtablissement) ON Personnels.N° = Actions.CFC) ON Production.N° = Actions.Centre) ON RqtPivotHeuresPerifParEtablissement.IdBudgetaire = Actions.IdBudgetaire; |
Celle-ci se base sur les 2 requêtes ci-dessous :
RqtPivotHeuresPerifEtablisement
Code:
1 2 3 4 5 6
| TRANSFORM nz(Sum([HF].[NbHeure]),0) AS Total
SELECT Etablissements.Nom, Actions.Intitule, HF.IdBudgetaire, AnnexeBudgetaire.NumAction, Actions.Debut, Actions.Fin
FROM AnnexeBudgetaire RIGHT JOIN (Etablissements RIGHT JOIN (Actions RIGHT JOIN HeuresFormateurs AS HF ON Actions.IdBudgetaire = HF.IdBudgetaire) ON Etablissements.N° = Actions.IdEtablissement) ON AnnexeBudgetaire.N° = Actions.IdBudgetaire
WHERE (((HF.Annee)=2013) AND ((HF.TypeHeure)=3))
GROUP BY Etablissements.Nom, Actions.Intitule, HF.IdBudgetaire, AnnexeBudgetaire.NumAction, Actions.Debut, Actions.Fin
PIVOT HF.Mois In (1,2,3,4,5,6,7,8,9,10,11,12); |
et RqtPivotHeuresPerifEtablisementAn-1
Code:
1 2 3 4 5 6
| TRANSFORM Sum(HF.NbHeure) AS Total
SELECT Etablissements.Nom, HF.IdBudgetaire, Actions.Intitule
FROM Etablissements RIGHT JOIN (Actions RIGHT JOIN HeuresFormateurs AS HF ON Actions.IdBudgetaire = HF.IdBudgetaire) ON Etablissements.N° = Actions.IdEtablissement
WHERE (((HF.Annee)=2012) AND ((HF.TypeHeure)=3))
GROUP BY Etablissements.Nom, HF.IdBudgetaire, Actions.Intitule
PIVOT HF.Annee; |
Mon problème commence dans mon état lorsque je veux calculer les heures pour le 1er et le 2nd semestre. Si pour les 12 mois de l'année j'ai "2,0,0,0,0,0,0,0,0,0,0,0" le champ pour le 1er semestre qui a comme donnée "=[1]+[2]+[3]+[4]+[5]+[6]" affiche "200000". Si je regarde le format d'affichage des 12 mois la liste de choix est vide. Alors que pour les heures de l'année 2012 je peux choisir standard avec 2 décimales.
Merci pour votre aide.