Bonjour a tous,
Dans une requête je doit calculer un taux de conformité(en %), plus précisément je récupère le nombre de pièce analysé et le nombre de pièce non conforme pour calculer un taux de conformité.
Ici j’implémente une nouvelle fonctionnalité avec un argument nommé laps. Le fonctionnement de la fonction est la suivante : l'utilisateur choisi une date de début et de fin pour sa période d'analyse puis il rentre une valeur pour l’argument laps. Ma fonction est donc censé calculer 2 taux celui de date de début -> date de fin et date de début -> date de début + laps. Puis je compare ces deux taux pour afficher des flèches de progression/stagnation/régression.
Pour cela je calcule le premier taux (celui la fonctionne) et dans une sous requête j'ai tenté de calculer le taux selon le laps choisi, j'obtiens le taux de -1 pour chacun des différents secteurs (îlot ). Le problème auquel je me heurte est que ma sous requête nécessite que je calcule le nb de point audité et le nb de point non conforme (NC) a l’intérieur de celle ci donc je ne sais pas comment attribué la valeur du taux conforme sur laps a l'aide d'un AS. De plus je n'arrive pas a changer la valeur du temps (date debut -> date debut + laps)
Voici mon code :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SELECT Secteurs.Secteur, Sum([5S].Compteur*10+([5S].[NA1]+[5S].[NA2]+[5S].[NA3]+[5S].[NA4]+[5S].[NA5]+[5S].[NA6]+[5S].[NA7]+[5S].[NA8]+[5S].[NA9]+[5S].[NA10])) AS [Nb points audités], [Nb points audités]+Sum([5S].[Pt1]+[5S].[Pt2]+[5S].[Pt3]+[5S].[Pt4]+[5S].[Pt5]+[5S].[Pt6]+[5S].[Pt7]+[5S].[Pt8]+[5S].[Pt9]+[5S].[Pt10]) AS [Nb points NC], (1-[Nb points NC]/[Nb points audités]) AS [Taux conforme], EXISTS (SELECT Sum([5S].Compteur*10+([5S].[NA1]+[5S].[NA2]+[5S].[NA3]+[5S].[NA4]+[5S].[NA5]+[5S].[NA6]+[5S].[NA7]+[5S].[NA8]+[5S].[NA9]+[5S].[NA10])) AS [Nb points audités], [Nb points audités]+Sum([5S].[Pt1]+[5S].[Pt2]+[5S].[Pt3]+[5S].[Pt4]+[5S].[Pt5]+[5S].[Pt6]+[5S].[Pt7]+[5S].[Pt8]+[5S].[Pt9]+[5S].[Pt10]) AS [Nb points NC], (1-[Nb points NC]/[Nb points audités]) AS [Taux conforme sur laps] FROM 5S INNER JOIN Secteurs ON [5S].Secteur = Secteurs.N° WHERE (([VarTemp]![5S_DEB]<=[5S]!Date) And ([VarTemp]![5S_FIN]>=[5S]!Date) And Secteurs.Type=TempVars!TYP_SEC) And ([VarTemp]![5S_FIN]=[VarTemp]![5S_DEB] + [5S]!Laps) ), IIf([Taux conforme]<[Taux conforme sur laps],"m",IIf([Taux conforme]=[Taux conforme sur laps],"g","k")) AS Fleches FROM 5S INNER JOIN Secteurs ON [5S].Secteur = Secteurs.N° WHERE (([VarTemp]![5S_DEB]<=[5S]!Date) And ([VarTemp]![5S_FIN]>=[5S]!Date) And Secteurs.Type=TempVars!TYP_SEC) GROUP BY Secteurs.Secteur ORDER BY Secteurs.Secteur;
J'ai surligné en rouge la ligne que je n'arrive pas a traiter correctement,
Cdlt,
PSlayeur
Partager