Requête ne me renvoit pas tout
maw
-
maw -
maw -
Bonjour,
je dois actuellement faire une base de données pour les ressources humaines de mon entreprise, ils me demandent de calculer la part des effectifs cdd et effectifs cdi, dans chaque unité, au niveau régional et au niveau national,
ceci ne me pose pas de problème.
Mon soucis est que je veux faire une table qui me calcule les parts et je veux une ligne par unité avec rappel du national et du régional, mais toutes les unités n'ont pas de références régionales et donc évidemment ma requête ne me retourne que les unités ayant des régions.
Voici ma requête, si vous avez une ou deux idées en rab, ce serait gentil ^^
Merci d'avance
je dois actuellement faire une base de données pour les ressources humaines de mon entreprise, ils me demandent de calculer la part des effectifs cdd et effectifs cdi, dans chaque unité, au niveau régional et au niveau national,
ceci ne me pose pas de problème.
Mon soucis est que je veux faire une table qui me calcule les parts et je veux une ligne par unité avec rappel du national et du régional, mais toutes les unités n'ont pas de références régionales et donc évidemment ma requête ne me retourne que les unités ayant des régions.
Voici ma requête, si vous avez une ou deux idées en rab, ce serait gentil ^^
Merci d'avance
SELECT DISTINCTROW effectif_cdd.période, effectif_cdd.code_ens, effectif_cdd.code_reg, effectif_cdd.code_resto, effectif_cdd.eff_moy_cdi_cdd AS total, eff_cdd_reg.eff_moy_cdi_cdd_reg AS total_reg, eff_cdd_nat.eff_moy_cdi_cdd_nat AS total_nat, eff_moy_cdd/eff_moy_cdi_cdd AS part_cdd, eff_moy_cdd_reg/eff_moy_cdi_cdd_reg AS part_cdd_reg, eff_moy_cdd_nat/eff_moy_cdi_cdd_nat AS part_cdd_nat, eff_moy_tpa_cdd/eff_moy_cdd AS part_tpa, eff_moy_tpa_cdd_reg/eff_moy_cdd_reg AS part_tpa_reg, eff_moy_tpa_cdd_nat/eff_moy_cdd_nat AS part_tpa_nat, eff_moy_tc_cdd/eff_moy_cdd AS part_tc, eff_moy_tc_cdd_reg/eff_moy_cdd_reg AS part_tc_reg, eff_moy_tc_cdd_nat/eff_moy_cdd_nat AS part_tc_nat, eff_moy_tpl_cdd/eff_moy_cdd AS part_tpl, eff_moy_tpl_cdd_reg/eff_moy_cdd_reg AS part_tpl_reg, eff_moy_tpl_cdd_nat/eff_moy_cdd_nat AS part_tpl_nat FROM effectif_cdd, eff_cdd_reg, eff_cdd_nat, resto WHERE (((effectif_cdd.période)=[forms]![choix_période]![trimestre]) AND ((effectif_cdd.code_ens)=[eff_cdd_nat].[code_ens]) AND ((effectif_cdd.code_reg)=[eff_cdd_reg].[code_reg]));
A voir également:
- Requête ne me renvoit pas tout
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ✓ - Forum Java
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ? ✓ - Forum Access
- Requête SELECT entre une table et une requête existante ✓ - Forum Access
- Probleme de requête - Forum Access
- Requête bloquée par le pare-feu applicatif claranet webfence ✓ - Forum Réseaux sociaux
5 réponses
Je ne connais pas bien access, mais il implémente le SQL, donc il doit y avoir un moyen, même si la syntaxe change un petit peu.
Essai d'abord avec des requêtes simples comme :
et après complexifie.
Essai d'abord avec des requêtes simples comme :
SELECT * FROM effectif_cdd as e1 LEFT OUTER JOIN eff_cdd_reg as e2 ON e1.code_reg=e2.code_reg
et après complexifie.
Bonjour,
tu pourrais regarder du coté du "LEFT OUTER JOIN".
Au lieu de faire des jointures simples :
tu le fais avec un "LEFT OUTER JOIN" qui te permet de récupérer aussi les éléments qui ont une valeur vide :
Je ne connais pas en détail la structure de ta base, mais le principe est là.
En espérant que ça t'aide :)
tu pourrais regarder du coté du "LEFT OUTER JOIN".
Au lieu de faire des jointures simples :
FROM effectif_cdd, eff_cdd_reg, eff_cdd_nat, resto WHERE (((effectif_cdd.période)=[forms]![choix_période]![trimestre]) AND ((effectif_cdd.code_ens)=[eff_cdd_nat].[code_ens]) AND ((effectif_cdd.code_reg)=[eff_cdd_reg].[code_reg]));
tu le fais avec un "LEFT OUTER JOIN" qui te permet de récupérer aussi les éléments qui ont une valeur vide :
FROM effectif_cdd, eff_cdd_nat, resto LEFT OUTER JOIN eff_cdd_reg ON effectif_cdd.code_reg=[eff_cdd_reg].[code_reg] WHERE (effectif_cdd.période)=[forms]![choix_période]![trimestre] AND effectif_cdd.code_ens=[eff_cdd_nat].[code_ens]
Je ne connais pas en détail la structure de ta base, mais le principe est là.
En espérant que ça t'aide :)
Pour commencer, merci d'avoir répondu aussi vite,
quand j'essaie de procéder de la sorte, access me donne un message d'erreur en m'indiquant que la jointure n'est pas supportée...
quand j'essaie de procéder de la sorte, access me donne un message d'erreur en m'indiquant que la jointure n'est pas supportée...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
j'ai fouillé et j'ai trouvé merci beaucoup pour tout, j'avais juste une confusion dans l'ordre de mes left join,
voici ma requête finale qui me renvoit tout =)
voici ma requête finale qui me renvoit tout =)
SELECT DISTINCTROW effectif_cdd.période, effectif_cdd.code_ens, effectif_cdd.code_reg, effectif_cdd.code_resto, effectif_cdd.eff_moy_cdi_cdd AS total, eff_cdd_reg.eff_moy_cdi_cdd_reg AS total_reg, eff_cdd_nat.eff_moy_cdi_cdd_nat AS total_nat, eff_moy_cdd/eff_moy_cdi_cdd AS part_cdd, eff_moy_cdd_reg/eff_moy_cdi_cdd_reg AS part_cdd_reg, eff_moy_cdd_nat/eff_moy_cdi_cdd_nat AS part_cdd_nat, eff_moy_tpa_cdd/eff_moy_cdd AS part_tpa, eff_moy_tpa_cdd_reg/eff_moy_cdd_reg AS part_tpa_reg, eff_moy_tpa_cdd_nat/eff_moy_cdd_nat AS part_tpa_nat, eff_moy_tc_cdd/eff_moy_cdd AS part_tc, eff_moy_tc_cdd_reg/eff_moy_cdd_reg AS part_tc_reg, eff_moy_tc_cdd_nat/eff_moy_cdd_nat AS part_tc_nat, eff_moy_tpl_cdd/eff_moy_cdd AS part_tpl, eff_moy_tpl_cdd_reg/eff_moy_cdd_reg AS part_tpl_reg, eff_moy_tpl_cdd_nat/eff_moy_cdd_nat AS part_tpl_nat FROM eff_cdd_nat LEFT JOIN (effectif_cdd LEFT JOIN eff_cdd_reg ON effectif_cdd.code_reg = eff_cdd_reg.code_reg) ON eff_cdd_nat.code_ens = effectif_cdd.code_ens WHERE effectif_cdd.période=forms!choix_période!trimestre;
http://office.microsoft.com/en-gb/access-help/creating-an-outer-join-query-in-access-HA001034555.aspx