ACCESS - SQL
jlito
-
jlito -
jlito -
Bonjour,
J'ai une table avec un champ age et 5 colonnes de résultat calculé (somme ou %).
Je dois regrouper cette liste en trois catégories d'age (<=35 - de > 35 à < =50 ans - >50)
comment puis-je faire pour avoir une seule ligne pour chaque catégorie d'age dans la même requête sql ?
Mon test ne fonctionne pas mais ça devrais ressembler à quelque chose comme ceci ?
select sum(SommeDeFreqMal),avg(MoyenneDePourcAbsMal),Sum(SommeDeAT), avg(MoyenneDePourcentAbs),Avg(MoyenneDePourcentAbs), Avg(MoyenneDeIndiceBradford)
from (SELECT absenteisme.AgeFinAnnee, Sum(absenteisme.FreqMal) AS SommeDeFreqMal, Avg(absenteisme.PourcAbsMal) AS MoyenneDePourcAbsMal, Sum(absenteisme.AT) AS SommeDeAT, Avg(absenteisme.PourcentAbs) AS MoyenneDePourcentAbs, Avg(absenteisme.IndiceBradford) AS MoyenneDeIndiceBradford, "<= 35 ans" AS Tranche
FROM absenteisme
WHERE (((absenteisme.AgeFinAnnee)<=35)))
GROUP BY absenteisme.AgeFinAnnee
union
select sum(SommeDeFreqMal),avg(MoyenneDePourcAbsMal),Sum(SommeDeAT), avg(MoyenneDePourcentAbs),Avg(MoyenneDePourcentAbs), Avg(MoyenneDeIndiceBradford)
from (SELECT absenteisme.AgeFinAnnee, Sum(absenteisme.FreqMal) AS SommeDeFreqMal, Avg(absenteisme.PourcAbsMal) AS MoyenneDePourcAbsMal, Sum(absenteisme.AT) AS SommeDeAT, Avg(absenteisme.PourcentAbs) AS MoyenneDePourcentAbs, Avg(absenteisme.IndiceBradford) AS MoyenneDeIndiceBradford, "> 35 à < =50 ans" AS Tranche
FROM absenteisme
WHERE (((absenteisme.AgeFinAnnee)>35 And (absenteisme.AgeFinAnnee)<=50)))
GROUP BY absenteisme.AgeFinAnnee
UNION
select sum(SommeDeFreqMal),avg(MoyenneDePourcAbsMal),Sum(SommeDeAT), avg(MoyenneDePourcentAbs),Avg(MoyenneDePourcentAbs), Avg(MoyenneDeIndiceBradford)
from (SELECT absenteisme.AgeFinAnnee, Sum(absenteisme.FreqMal) AS SommeDeFreqMal, Avg(absenteisme.PourcAbsMal) AS MoyenneDePourcAbsMal, Sum(absenteisme.AT) AS SommeDeAT, Avg(absenteisme.PourcentAbs) AS MoyenneDePourcentAbs, Avg(absenteisme.IndiceBradford) AS MoyenneDeIndiceBradford, "> 50 ans" AS Tranche
FROM absenteisme
WHERE (((absenteisme.AgeFinAnnee)>50)))
GROUP BY absenteisme.AgeFinAnnee;
Merci pour votre aide.
Cordialement
john
J'ai une table avec un champ age et 5 colonnes de résultat calculé (somme ou %).
Je dois regrouper cette liste en trois catégories d'age (<=35 - de > 35 à < =50 ans - >50)
comment puis-je faire pour avoir une seule ligne pour chaque catégorie d'age dans la même requête sql ?
Mon test ne fonctionne pas mais ça devrais ressembler à quelque chose comme ceci ?
select sum(SommeDeFreqMal),avg(MoyenneDePourcAbsMal),Sum(SommeDeAT), avg(MoyenneDePourcentAbs),Avg(MoyenneDePourcentAbs), Avg(MoyenneDeIndiceBradford)
from (SELECT absenteisme.AgeFinAnnee, Sum(absenteisme.FreqMal) AS SommeDeFreqMal, Avg(absenteisme.PourcAbsMal) AS MoyenneDePourcAbsMal, Sum(absenteisme.AT) AS SommeDeAT, Avg(absenteisme.PourcentAbs) AS MoyenneDePourcentAbs, Avg(absenteisme.IndiceBradford) AS MoyenneDeIndiceBradford, "<= 35 ans" AS Tranche
FROM absenteisme
WHERE (((absenteisme.AgeFinAnnee)<=35)))
GROUP BY absenteisme.AgeFinAnnee
union
select sum(SommeDeFreqMal),avg(MoyenneDePourcAbsMal),Sum(SommeDeAT), avg(MoyenneDePourcentAbs),Avg(MoyenneDePourcentAbs), Avg(MoyenneDeIndiceBradford)
from (SELECT absenteisme.AgeFinAnnee, Sum(absenteisme.FreqMal) AS SommeDeFreqMal, Avg(absenteisme.PourcAbsMal) AS MoyenneDePourcAbsMal, Sum(absenteisme.AT) AS SommeDeAT, Avg(absenteisme.PourcentAbs) AS MoyenneDePourcentAbs, Avg(absenteisme.IndiceBradford) AS MoyenneDeIndiceBradford, "> 35 à < =50 ans" AS Tranche
FROM absenteisme
WHERE (((absenteisme.AgeFinAnnee)>35 And (absenteisme.AgeFinAnnee)<=50)))
GROUP BY absenteisme.AgeFinAnnee
UNION
select sum(SommeDeFreqMal),avg(MoyenneDePourcAbsMal),Sum(SommeDeAT), avg(MoyenneDePourcentAbs),Avg(MoyenneDePourcentAbs), Avg(MoyenneDeIndiceBradford)
from (SELECT absenteisme.AgeFinAnnee, Sum(absenteisme.FreqMal) AS SommeDeFreqMal, Avg(absenteisme.PourcAbsMal) AS MoyenneDePourcAbsMal, Sum(absenteisme.AT) AS SommeDeAT, Avg(absenteisme.PourcentAbs) AS MoyenneDePourcentAbs, Avg(absenteisme.IndiceBradford) AS MoyenneDeIndiceBradford, "> 50 ans" AS Tranche
FROM absenteisme
WHERE (((absenteisme.AgeFinAnnee)>50)))
GROUP BY absenteisme.AgeFinAnnee;
Merci pour votre aide.
Cordialement
john
A voir également:
- ACCESS - SQL
- Logiciel sql - Télécharger - Bases de données
- Access appdata - Guide
- Acer quick access - Forum logiciel systeme
- Désinstaller ACER QUICK ACCESS - Forum Logiciels
- Requête sql pix - Forum Python
1 réponse
Par contre, celle-ci fonctionne, mais je n'arrive pas à obtenir un total par groupe d'age :
SELECT absenteisme.AgeFinAnnee, Sum(absenteisme.FreqMal) AS SommeDeFreqMal, Avg(absenteisme.PourcAbsMal) AS MoyenneDePourcAbsMal, Sum(absenteisme.AT) AS SommeDeAT, Avg(absenteisme.PourcentAbs) AS MoyenneDePourcentAbs, Avg(absenteisme.IndiceBradford) AS MoyenneDeIndiceBradford, "<= 35 ans" AS Tranche
FROM absenteisme
WHERE (((absenteisme.AgeFinAnnee)<=35))
GROUP BY absenteisme.AgeFinAnnee
union
SELECT absenteisme.AgeFinAnnee, Sum(absenteisme.FreqMal) AS SommeDeFreqMal, Avg(absenteisme.PourcAbsMal) AS MoyenneDePourcAbsMal, Sum(absenteisme.AT) AS SommeDeAT, Avg(absenteisme.PourcentAbs) AS MoyenneDePourcentAbs, Avg(absenteisme.IndiceBradford) AS MoyenneDeIndiceBradford, "> 35 à < =50 ans" AS Tranche
FROM absenteisme
WHERE (((absenteisme.AgeFinAnnee)>35 And (absenteisme.AgeFinAnnee)<=50))
GROUP BY absenteisme.AgeFinAnnee
UNION SELECT absenteisme.AgeFinAnnee, Sum(absenteisme.FreqMal) AS SommeDeFreqMal, Avg(absenteisme.PourcAbsMal) AS MoyenneDePourcAbsMal, Sum(absenteisme.AT) AS SommeDeAT, Avg(absenteisme.PourcentAbs) AS MoyenneDePourcentAbs, Avg(absenteisme.IndiceBradford) AS MoyenneDeIndiceBradford, "> 50 ans" AS Tranche
FROM absenteisme
WHERE (((absenteisme.AgeFinAnnee)>50))
GROUP BY absenteisme.AgeFinAnnee;
SELECT absenteisme.AgeFinAnnee, Sum(absenteisme.FreqMal) AS SommeDeFreqMal, Avg(absenteisme.PourcAbsMal) AS MoyenneDePourcAbsMal, Sum(absenteisme.AT) AS SommeDeAT, Avg(absenteisme.PourcentAbs) AS MoyenneDePourcentAbs, Avg(absenteisme.IndiceBradford) AS MoyenneDeIndiceBradford, "<= 35 ans" AS Tranche
FROM absenteisme
WHERE (((absenteisme.AgeFinAnnee)<=35))
GROUP BY absenteisme.AgeFinAnnee
union
SELECT absenteisme.AgeFinAnnee, Sum(absenteisme.FreqMal) AS SommeDeFreqMal, Avg(absenteisme.PourcAbsMal) AS MoyenneDePourcAbsMal, Sum(absenteisme.AT) AS SommeDeAT, Avg(absenteisme.PourcentAbs) AS MoyenneDePourcentAbs, Avg(absenteisme.IndiceBradford) AS MoyenneDeIndiceBradford, "> 35 à < =50 ans" AS Tranche
FROM absenteisme
WHERE (((absenteisme.AgeFinAnnee)>35 And (absenteisme.AgeFinAnnee)<=50))
GROUP BY absenteisme.AgeFinAnnee
UNION SELECT absenteisme.AgeFinAnnee, Sum(absenteisme.FreqMal) AS SommeDeFreqMal, Avg(absenteisme.PourcAbsMal) AS MoyenneDePourcAbsMal, Sum(absenteisme.AT) AS SommeDeAT, Avg(absenteisme.PourcentAbs) AS MoyenneDePourcentAbs, Avg(absenteisme.IndiceBradford) AS MoyenneDeIndiceBradford, "> 50 ans" AS Tranche
FROM absenteisme
WHERE (((absenteisme.AgeFinAnnee)>50))
GROUP BY absenteisme.AgeFinAnnee;