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 05/12/2011, 18h15   #1
Invité de passage
 
Homme
Inscription : décembre 2011
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : décembre 2011
Messages : 1
Points : 0
Points : 0
Par défaut requete trop complexe

"Bonjour"
Access me dit "requête trop complexe". Comment faire?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
SELECT 
Tâches.[DATE PAYE], 
Tâches.[Affecté à], 
Employés.[LIBELLE CI NOM Prénom], 
Employés.DTNAISS, 
Employés.Nationality, 
Employés.[Etat civil], 
Employés.Ville, 
Employés.Département, 
Employés.N°_CNPS, 
Employés.DATEENTREESTE, 
Round([BASE]/176*[HNORMALE]) AS [salaire base], 
IIf([TYPE PAYE]='marée',
    Round([sursalaire]*[HNORMALE]),
    Round([SURSALAIRE RECUP]*[HNORMALE])) AS SURS, 
Round(([BASE]/176)*1.15*[HEURES SUPPLEMENTAIRES A 15%]) AS hsup15, 
Round(([BASE]/176)*1.5*[HEURES SUPPLEMENTAIRES A 50%]) AS hsup50, 
Round(([BASE]/176)*1.75*[HEURES SUPPLEMENTAIRES A 75%]) AS hsup75, 
IIf([TYPE PAYE]='marée',30000,0) AS primtrav, 
IIf([TYPE PAYE]='marée',8500,0) AS primMER, 
IIf([TYPE PAYE]='marée',8500,0) AS primRisque, 
IIf([TYPE PAYE]='marée',[% PRIME]*[POSITION]![PRIME DE PERFORMANCE],0) AS primPerf, 
Round([salaire base]+[SURS]+[hsup15]+[hsup50]+[hsup75]+[primMER]+[primRisque]+[primtrav]+[primPerf]) AS Brutimp, 
Round([Brutimp]*0.012) AS [IS], 
Round([Brutimp]*0.8) AS bcn, 
Round(IIf([bcn]<130000,
    ([bcn]-50000)*0.015,
        IIf([bcn]<200000,
            (([bcn]-130000)*0.05)+1200,
                IIf([bcn]>200000,([bcn]-200000)*0.1+4700,0)))) AS CN, 
Employés.PARTS, 
Round((([bcn]-([IS]+[CN]))*0.85)) AS bigr, 
Round(IIf([bigr]/[PARTS]<=45583,
    (([bigr]*0.0909)-([PARTS]*2273)),
        IIf([bigr]/[PARTS]<=81583,
            (([bigr]*0.1304)-([PARTS]*4076)),
                IIf([bigr]/[PARTS]<=126583,
                    (([bigr]*0.1666)-([PARTS]*7031)),
                        IIf([bigr]/[PARTS]<=220333,
                            (([bigr]*0.2)-([PARTS]*11250)),
                                IIf([bigr]/[PARTS]<=389083,
                                    (([bigr]*0.2592)-(24306*[PARTS])),
                                        IIf([bigr]/[PARTS]<=842166,
                                            (([bigr]*0.3103)-(44181*[PARTS])),    
                                                IIf([bigr]/[parts]>=842167,
                                                    (([bigr]*0.375)-(98633*[PARTS])),0)))))))) AS IGR, 
Round([Brutimp]*0.032) AS CNPS, 
Round([Brutimp]*0.012) AS CNlocpat, 
Round([Brutimp]*0.004) AS TaxApp, 
Round([Brutimp]*0.006) AS TaxFormPro, 
Round(IIf([Brutimp]>70000,70000*0.02,[Brutimp]*0.02)) AS CNPSAcc, 
Round(IIf([Brutimp]>70000,70000*0.0575,[Brutimp]*0.0575)) AS CNPSprestfam, 
[IS]+[IGR]+[CN]+[ARRONDI DE PAIE<0] AS TotRetenue, 
[ARRONDI DE PAIE]+[Brutimp]+[TRANSPORT] AS TotGAINS, 
Round([TotGAINS]-[TotRetenue]) AS [NET à Payer], 
Round([net à payer]-[percu]) AS du, 
*
FROM Employés 
RIGHT JOIN (([POSITION] INNER JOIN Tâches ON POSITION.ID = Tâches.POSITION) 
LEFT JOIN paye ON Tâches.ID = paye.ID_TACHE) ON Employés.ID = Tâches.[Affecté à]
ORDER BY Tâches.[DATE PAYE], Tâches.[Affecté à];
"Merci"
abjso est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 09h37   #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 abjso,

Citation:
Access me dit "requête trop complexe"
...Si Access n'en sort pas pour comprendre ce que tu veux faire, mets-toi à notre place !

Explique-nous, avec des mots, ce que tu veux faire. Notamment tous ces "IIf".
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 22h06   #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 447
Points : 4 447
bonsoir abjso, salutations Claude,

elle est rasta la requête hein ?

Comme ça je dirais que le nombre de Iif imbriqués est trop important pour les neurones d'Access.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..., 
Round(IIf([bigr]/[PARTS]<=45583,
    (([bigr]*0.0909)-([PARTS]*2273)),
        IIf([bigr]/[PARTS]<=81583,
            (([bigr]*0.1304)-([PARTS]*4076)),
                IIf([bigr]/[PARTS]<=126583,
                    (([bigr]*0.1666)-([PARTS]*7031)),
                        IIf([bigr]/[PARTS]<=220333,
                            (([bigr]*0.2)-([PARTS]*11250)),
                                IIf([bigr]/[PARTS]<=389083,
                                    (([bigr]*0.2592)-(24306*[PARTS])),
                                        IIf([bigr]/[PARTS]<=842166,
                                            (([bigr]*0.3103)-(44181*[PARTS])),    
                                                IIf([bigr]/[parts]>=842167,
                                                    (([bigr]*0.375)-(98633*[PARTS])),0)))))))) AS IGR, ...
Si le problème vient bien de là, il vaut mieux passer par une fonction VBA calculIGR avec des Select case...
Code :
1
2
..., 
calculIGR([bigr], [parts]) AS IGR, ...
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 15h35.


 
 
 
 
Partenaires

Hébergement Web