Bonjour à tous et merci de votre temps et de votre aide.
J'ai une requête qui est TRÈS lente car elle utilise des DSum.
Mes esssais semblent indiquer que qu'avec des sous-requêtes j'irai plus vite mais je n'arrive pas à écrire ce que je veux ni à saisir les exemples que j'ai trouvés sur Google.
Ici le SQL de ma requête un peu simplifié :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT "[NoGroupeAff]=" & [tblBaseGroupeAff].[No] & " and [Annee]=" & [reqBaseParam_Annee].[Annee] & " and [NoMois]<=" & [reqBaseParam_NoMois].[NoMois] AS Critere, (SELECT Sum(reqHP_TDBIntervention.IndicateurNonDummy) AS SommeDeIndicateurNonDummy FROM reqHP_TDBIntervention WHERE (((reqHP_TDBIntervention.[NoGroupeAff])=1) AND ((reqHP_TDBIntervention.[Annee])=2016) AND ((reqHP_TDBIntervention.[NoMois])<=5));) AS NbIntervention FROM reqBaseParam_NoMois, reqBaseParam_Annee, tblBaseTerr INNER JOIN tblBaseGroupeAff ON tblBaseTerr.[No] = tblBaseGroupeAff.NoTerr
celle-ci marche mais 1, 2016 et 5 sont des constantes alors que je souhaite que ce soit des variables en fonction du groupe d'affectation (1), de l'année (2106) et du mois choisi (5)
J'ai essayé cela :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT "[NoGroupeAff]=" & [tblBaseGroupeAff].[No] & " and [Annee]=" & [reqBaseParam_Annee].[Annee] & " and [NoMois]<=" & [reqBaseParam_NoMois].[NoMois] AS Critere, (SELECT Sum(reqHP_TDBIntervention.IndicateurNonDummy) AS SommeDeIndicateurNonDummy FROM reqHP_TDBIntervention WHERE (((reqHP_TDBIntervention.[NoGroupeAff])=[tblBaseGroupeAff].[No]) AND ((reqHP_TDBIntervention.[Annee])=[reqBaseParam_Annee].[Annee]) AND ((reqHP_TDBIntervention.[NoMois])<=[reqBaseParam_NoMois].[NoMois]));) AS NbIntervention FROM reqBaseParam_NoMois, reqBaseParam_Annee, tblBaseTerr INNER JOIN tblBaseGroupeAff ON tblBaseTerr.[No] = tblBaseGroupeAff.NoTerr
Mais lors de l'exécution de la sous-requête, il me dit qu'il ne connait pas [tblBaseGroupeAff].[No], [reqBaseParam_Annee].[Annee], [reqBaseParam_NoMois].[NoMois].
Ce qui est logique puisque les tables et requêtes ne sont pas dans la clause FROM de la sous-requête.
Donc ma question est : comment faire pour que la sous-requête se réfère aux champs visibles dans la requête principale.
A+
Partager