liaison entre 2 requêtes

Le
rafael
Bonjour tout le monde !

J'ai un problème avec une de mes requêtes.
Je dispose d'une base sur laquelle j'alimente les Heures Supp et les
Absences de chaque employé.
Mon but est de connaître pour une période saisie (une date de début et une
date de fin, en général cela fait une semaine) les Heures Supp et les
Absences de chacun, et d'en déduire par un calcul les Heures à récupérer ou à
rattraper.
J'ai les requêtes me donnant séparemment ces 2 éléments.

Mon problème est le suivant : la 1ère requête ne me donne que les employés
ayant fait des Heures Supp mais ne m'affiche pas ceux qui n'en ont pas fait
. Je voudrais voir tous les employés, même ceux qui n'ont pas d'Heures Supp
(ceux-ci auraient 0 dans la colonne "NB Heures Supp").
Je voudrais la même chose pour la seconde requête concernant les Absences.
Ainsi, je pourrai calculer la différence et je pourrai afficher dans un état
le détail de chaque employé pour la semaine saisie.

Merci à tous de votre aide.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Eric
Le #6190281
Bonjour,

Je suppose que tes requêtes font appel à 2 tables. Il faut pour cela
que tu modifies le type de jointure entre ces 2 tables.
Cliques droit sur la jointure et tu choisis l'option 2 ou 3 dans les
jointures : Afficher tous les enreg. de la table et uniquement ceux ...

Bonjour tout le monde !

J'ai un problème avec une de mes requêtes.
Je dispose d'une base sur laquelle j'alimente les Heures Supp et les
Absences de chaque employé.
Mon but est de connaître pour une période saisie (une date de début et une
date de fin, en général cela fait une semaine) les Heures Supp et les
Absences de chacun, et d'en déduire par un calcul les Heures à récupérer ou à
rattraper.
J'ai les requêtes me donnant séparemment ces 2 éléments.

Mon problème est le suivant : la 1ère requête ne me donne que les employés
ayant fait des Heures Supp mais ne m'affiche pas ceux qui n'en ont pas fait
. Je voudrais voir tous les employés, même ceux qui n'ont pas d'Heures Supp
(ceux-ci auraient 0 dans la colonne "NB Heures Supp").
Je voudrais la même chose pour la seconde requête concernant les Absences.
Ainsi, je pourrai calculer la différence et je pourrai afficher dans un état
le détail de chaque employé pour la semaine saisie.

Merci à tous de votre aide.


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

rafael
Le #6190151
Merci pour ta réponse ! ! !

Le problème est que je ne sais pas quoi choisir.

J'ai fait quelques tests en vain.

Voici une brève présentation de ma base :
EMPLOYE (Employe_Num Entier Numéro Automatique; Employe_Nom Texte,
Employe_Prenom Texte)
Heures_Supp(Heures_Supp_Num Entier reprenant le Numéro de Employe_Num;
Heures_Supp_Date Date; Heures_Supp_Duree Décimal)
Absence(Absence_Num Entier reprenant le Numéro de Employe_Num;
Absence_Date_Debut Date; Absence_Date_Fin Date; Absence_Duree Decimal)

En voulant afficher tous les employés avec le NBRE d'Heures_Supp et le
NBRE d'Absences de chacun, le type de jointure actuel ne m'affiche
- que les employés ayant fait des Heures Supp pendant la période saisie (en
ce qui concerne ma requête sur les Heures Supp),
- que les employés ayant fait des Absences pendant la période saisie (en ce
qui concerne ma requête sur les Absences).

Quel type de jointure faut-il entre la table Employe et la table
Heures_Supp d'un côté, et la table Employe et la table Absence de l'autre
côté.

En espérant que je puisse mélanger les 2 requêtes et ainsi avoir pour
tous les employés les infos désirées.

Merci de ton aide.


Bonjour,

Je suppose que tes requêtes font appel à 2 tables. Il faut pour cela
que tu modifies le type de jointure entre ces 2 tables.
Cliques droit sur la jointure et tu choisis l'option 2 ou 3 dans les
jointures : Afficher tous les enreg. de la table et uniquement ceux ...

Bonjour tout le monde !

J'ai un problème avec une de mes requêtes.
Je dispose d'une base sur laquelle j'alimente les Heures Supp et les
Absences de chaque employé.
Mon but est de connaître pour une période saisie (une date de début et une
date de fin, en général cela fait une semaine) les Heures Supp et les
Absences de chacun, et d'en déduire par un calcul les Heures à récupérer ou à
rattraper.
J'ai les requêtes me donnant séparemment ces 2 éléments.

Mon problème est le suivant : la 1ère requête ne me donne que les employés
ayant fait des Heures Supp mais ne m'affiche pas ceux qui n'en ont pas fait
. Je voudrais voir tous les employés, même ceux qui n'ont pas d'Heures Supp
(ceux-ci auraient 0 dans la colonne "NB Heures Supp").
Je voudrais la même chose pour la seconde requête concernant les Absences.
Ainsi, je pourrai calculer la différence et je pourrai afficher dans un état
le détail de chaque employé pour la semaine saisie.

Merci à tous de votre aide.


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Eric
Le #6190131
re,

Pour les 2 requêtes, la jointure doit être du type Afficher tous les
enregistrements de la table Employés et seulement ceux de la table
heures_Supp(respectivement Absence) pour lesquels les champs joints sont
égaux ( à quelque chose près).

Si prob et si pas confidentiel, mets la bd (format Access 2000) avec
quelques enregistrements significatifs, après l'avoir compactée et
zippée sur www.cjoint.com et postes en retour le lien donné.
Il doit être possible de ne faire qu'une seule requête.

Merci pour ta réponse ! ! !

Le problème est que je ne sais pas quoi choisir.

J'ai fait quelques tests en vain.

Voici une brève présentation de ma base :
EMPLOYE (Employe_Num Entier Numéro Automatique; Employe_Nom Texte,
Employe_Prenom Texte)
Heures_Supp(Heures_Supp_Num Entier reprenant le Numéro de Employe_Num;
Heures_Supp_Date Date; Heures_Supp_Duree Décimal)
Absence(Absence_Num Entier reprenant le Numéro de Employe_Num;
Absence_Date_Debut Date; Absence_Date_Fin Date; Absence_Duree Decimal)

En voulant afficher tous les employés avec le NBRE d'Heures_Supp et le
NBRE d'Absences de chacun, le type de jointure actuel ne m'affiche
- que les employés ayant fait des Heures Supp pendant la période saisie (en
ce qui concerne ma requête sur les Heures Supp),
- que les employés ayant fait des Absences pendant la période saisie (en ce
qui concerne ma requête sur les Absences).

Quel type de jointure faut-il entre la table Employe et la table
Heures_Supp d'un côté, et la table Employe et la table Absence de l'autre
côté.

En espérant que je puisse mélanger les 2 requêtes et ainsi avoir pour
tous les employés les infos désirées.

Merci de ton aide.


Bonjour,

Je suppose que tes requêtes font appel à 2 tables. Il faut pour cela
que tu modifies le type de jointure entre ces 2 tables.
Cliques droit sur la jointure et tu choisis l'option 2 ou 3 dans les
jointures : Afficher tous les enreg. de la table et uniquement ceux ...

Bonjour tout le monde !

J'ai un problème avec une de mes requêtes.
Je dispose d'une base sur laquelle j'alimente les Heures Supp et les
Absences de chaque employé.
Mon but est de connaître pour une période saisie (une date de début et une
date de fin, en général cela fait une semaine) les Heures Supp et les
Absences de chacun, et d'en déduire par un calcul les Heures à récupérer ou à
rattraper.
J'ai les requêtes me donnant séparemment ces 2 éléments.

Mon problème est le suivant : la 1ère requête ne me donne que les employés
ayant fait des Heures Supp mais ne m'affiche pas ceux qui n'en ont pas fait
. Je voudrais voir tous les employés, même ceux qui n'ont pas d'Heures Supp
(ceux-ci auraient 0 dans la colonne "NB Heures Supp").
Je voudrais la même chose pour la seconde requête concernant les Absences.
Ainsi, je pourrai calculer la différence et je pourrai afficher dans un état
le détail de chaque employé pour la semaine saisie.

Merci à tous de votre aide.
--

A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



rafael
Le #6190051
Le lien a été créé: http://cjoint.com/?dumemf6lHE


re,

Pour les 2 requêtes, la jointure doit être du type Afficher tous les
enregistrements de la table Employés et seulement ceux de la table
heures_Supp(respectivement Absence) pour lesquels les champs joints sont
égaux ( à quelque chose près).

Si prob et si pas confidentiel, mets la bd (format Access 2000) avec
quelques enregistrements significatifs, après l'avoir compactée et
zippée sur www.cjoint.com et postes en retour le lien donné.
Il doit être possible de ne faire qu'une seule requête.

Merci pour ta réponse ! ! !

Le problème est que je ne sais pas quoi choisir.

J'ai fait quelques tests en vain.

Voici une brève présentation de ma base :
EMPLOYE (Employe_Num Entier Numéro Automatique; Employe_Nom Texte,
Employe_Prenom Texte)
Heures_Supp(Heures_Supp_Num Entier reprenant le Numéro de Employe_Num;
Heures_Supp_Date Date; Heures_Supp_Duree Décimal)
Absence(Absence_Num Entier reprenant le Numéro de Employe_Num;
Absence_Date_Debut Date; Absence_Date_Fin Date; Absence_Duree Decimal)

En voulant afficher tous les employés avec le NBRE d'Heures_Supp et le
NBRE d'Absences de chacun, le type de jointure actuel ne m'affiche
- que les employés ayant fait des Heures Supp pendant la période saisie (en
ce qui concerne ma requête sur les Heures Supp),
- que les employés ayant fait des Absences pendant la période saisie (en ce
qui concerne ma requête sur les Absences).

Quel type de jointure faut-il entre la table Employe et la table
Heures_Supp d'un côté, et la table Employe et la table Absence de l'autre
côté.

En espérant que je puisse mélanger les 2 requêtes et ainsi avoir pour
tous les employés les infos désirées.

Merci de ton aide.


Bonjour,

Je suppose que tes requêtes font appel à 2 tables. Il faut pour cela
que tu modifies le type de jointure entre ces 2 tables.
Cliques droit sur la jointure et tu choisis l'option 2 ou 3 dans les
jointures : Afficher tous les enreg. de la table et uniquement ceux ...

Bonjour tout le monde !

J'ai un problème avec une de mes requêtes.
Je dispose d'une base sur laquelle j'alimente les Heures Supp et les
Absences de chaque employé.
Mon but est de connaître pour une période saisie (une date de début et une
date de fin, en général cela fait une semaine) les Heures Supp et les
Absences de chacun, et d'en déduire par un calcul les Heures à récupérer ou à
rattraper.
J'ai les requêtes me donnant séparemment ces 2 éléments.

Mon problème est le suivant : la 1ère requête ne me donne que les employés
ayant fait des Heures Supp mais ne m'affiche pas ceux qui n'en ont pas fait
. Je voudrais voir tous les employés, même ceux qui n'ont pas d'Heures Supp
(ceux-ci auraient 0 dans la colonne "NB Heures Supp").
Je voudrais la même chose pour la seconde requête concernant les Absences.
Ainsi, je pourrai calculer la différence et je pourrai afficher dans un état
le détail de chaque employé pour la semaine saisie.

Merci à tous de votre aide.
--

A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr






Eric
Le #6189931
re,

J'ai interprété.
Une requête RQ1 qui calcule le nb d'heures supp paramétrée sur la date
(ex: du 11/01/07 au 18/01/07)
Une requête RQ2 qui calcule le nb d'heures d'absence paramétrée sur la
même période(du 11/01/07 au 18/01/07)
Enfin une requête globale qui donne la liste des tous les employés, avec
les heures supp et les absences le cas échéant, pour cette période.
C'était ce que tu voulais ?

ici: http://cjoint.com/?duoTvLj7vx

Le lien a été créé: http://cjoint.com/?dumemf6lHE


re,

Pour les 2 requêtes, la jointure doit être du type Afficher tous les
enregistrements de la table Employés et seulement ceux de la table
heures_Supp(respectivement Absence) pour lesquels les champs joints sont
égaux ( à quelque chose près).

Si prob et si pas confidentiel, mets la bd (format Access 2000) avec
quelques enregistrements significatifs, après l'avoir compactée et
zippée sur www.cjoint.com et postes en retour le lien donné.
Il doit être possible de ne faire qu'une seule requête.

Merci pour ta réponse ! ! !

Le problème est que je ne sais pas quoi choisir.

J'ai fait quelques tests en vain.

Voici une brève présentation de ma base :
EMPLOYE (Employe_Num Entier Numéro Automatique; Employe_Nom Texte,
Employe_Prenom Texte)
Heures_Supp(Heures_Supp_Num Entier reprenant le Numéro de Employe_Num;
Heures_Supp_Date Date; Heures_Supp_Duree Décimal)
Absence(Absence_Num Entier reprenant le Numéro de Employe_Num;
Absence_Date_Debut Date; Absence_Date_Fin Date; Absence_Duree Decimal)

En voulant afficher tous les employés avec le NBRE d'Heures_Supp et le
NBRE d'Absences de chacun, le type de jointure actuel ne m'affiche
- que les employés ayant fait des Heures Supp pendant la période saisie (en
ce qui concerne ma requête sur les Heures Supp),
- que les employés ayant fait des Absences pendant la période saisie (en ce
qui concerne ma requête sur les Absences).

Quel type de jointure faut-il entre la table Employe et la table
Heures_Supp d'un côté, et la table Employe et la table Absence de l'autre
côté.

En espérant que je puisse mélanger les 2 requêtes et ainsi avoir pour
tous les employés les infos désirées.

Merci de ton aide.


Bonjour,

Je suppose que tes requêtes font appel à 2 tables. Il faut pour cela
que tu modifies le type de jointure entre ces 2 tables.
Cliques droit sur la jointure et tu choisis l'option 2 ou 3 dans les
jointures : Afficher tous les enreg. de la table et uniquement ceux ...

Bonjour tout le monde !

J'ai un problème avec une de mes requêtes.
Je dispose d'une base sur laquelle j'alimente les Heures Supp et les
Absences de chaque employé.
Mon but est de connaître pour une période saisie (une date de début et une
date de fin, en général cela fait une semaine) les Heures Supp et les
Absences de chacun, et d'en déduire par un calcul les Heures à récupérer ou à
rattraper.
J'ai les requêtes me donnant séparemment ces 2 éléments.

Mon problème est le suivant : la 1ère requête ne me donne que les employés
ayant fait des Heures Supp mais ne m'affiche pas ceux qui n'en ont pas fait
. Je voudrais voir tous les employés, même ceux qui n'ont pas d'Heures Supp
(ceux-ci auraient 0 dans la colonne "NB Heures Supp").
Je voudrais la même chose pour la seconde requête concernant les Absences.
Ainsi, je pourrai calculer la différence et je pourrai afficher dans un état
le détail de chaque employé pour la semaine saisie.

Merci à tous de votre aide.
--

A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

--


A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr





rafael
Le #6189861
Salut Eric ! ! !
Merci de ton aide précieuse.
C'est exactement ce dont j'ai besoin.
Il ne me reste plus qu'à effectuer quelques tests.



re,

J'ai interprété.
Une requête RQ1 qui calcule le nb d'heures supp paramétrée sur la date
(ex: du 11/01/07 au 18/01/07)
Une requête RQ2 qui calcule le nb d'heures d'absence paramétrée sur la
même période(du 11/01/07 au 18/01/07)
Enfin une requête globale qui donne la liste des tous les employés, avec
les heures supp et les absences le cas échéant, pour cette période.
C'était ce que tu voulais ?

ici: http://cjoint.com/?duoTvLj7vx

Le lien a été créé: http://cjoint.com/?dumemf6lHE


re,

Pour les 2 requêtes, la jointure doit être du type Afficher tous les
enregistrements de la table Employés et seulement ceux de la table
heures_Supp(respectivement Absence) pour lesquels les champs joints sont
égaux ( à quelque chose près).

Si prob et si pas confidentiel, mets la bd (format Access 2000) avec
quelques enregistrements significatifs, après l'avoir compactée et
zippée sur www.cjoint.com et postes en retour le lien donné.
Il doit être possible de ne faire qu'une seule requête.

Merci pour ta réponse ! ! !

Le problème est que je ne sais pas quoi choisir.

J'ai fait quelques tests en vain.

Voici une brève présentation de ma base :
EMPLOYE (Employe_Num Entier Numéro Automatique; Employe_Nom Texte,
Employe_Prenom Texte)
Heures_Supp(Heures_Supp_Num Entier reprenant le Numéro de Employe_Num;
Heures_Supp_Date Date; Heures_Supp_Duree Décimal)
Absence(Absence_Num Entier reprenant le Numéro de Employe_Num;
Absence_Date_Debut Date; Absence_Date_Fin Date; Absence_Duree Decimal)

En voulant afficher tous les employés avec le NBRE d'Heures_Supp et le
NBRE d'Absences de chacun, le type de jointure actuel ne m'affiche
- que les employés ayant fait des Heures Supp pendant la période saisie (en
ce qui concerne ma requête sur les Heures Supp),
- que les employés ayant fait des Absences pendant la période saisie (en ce
qui concerne ma requête sur les Absences).

Quel type de jointure faut-il entre la table Employe et la table
Heures_Supp d'un côté, et la table Employe et la table Absence de l'autre
côté.

En espérant que je puisse mélanger les 2 requêtes et ainsi avoir pour
tous les employés les infos désirées.

Merci de ton aide.


Bonjour,

Je suppose que tes requêtes font appel à 2 tables. Il faut pour cela
que tu modifies le type de jointure entre ces 2 tables.
Cliques droit sur la jointure et tu choisis l'option 2 ou 3 dans les
jointures : Afficher tous les enreg. de la table et uniquement ceux ...

Bonjour tout le monde !

J'ai un problème avec une de mes requêtes.
Je dispose d'une base sur laquelle j'alimente les Heures Supp et les
Absences de chaque employé.
Mon but est de connaître pour une période saisie (une date de début et une
date de fin, en général cela fait une semaine) les Heures Supp et les
Absences de chacun, et d'en déduire par un calcul les Heures à récupérer ou à
rattraper.
J'ai les requêtes me donnant séparemment ces 2 éléments.

Mon problème est le suivant : la 1ère requête ne me donne que les employés
ayant fait des Heures Supp mais ne m'affiche pas ceux qui n'en ont pas fait
. Je voudrais voir tous les employés, même ceux qui n'ont pas d'Heures Supp
(ceux-ci auraient 0 dans la colonne "NB Heures Supp").
Je voudrais la même chose pour la seconde requête concernant les Absences.
Ainsi, je pourrai calculer la différence et je pourrai afficher dans un état
le détail de chaque employé pour la semaine saisie.

Merci à tous de votre aide.
--

A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

--


A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr








rafael
Le #6189851
Une dernière question :
La requête Globale fonctionne, mais je ne la comprends pas.
Peux-tu m'expliquer dans l'ordre les jointures faites dans le FROM
entre RQ1, Employe, et RQ2 (je ne me souviens plus des RIGHT JOIN ou LEFT
JOIN) ?
Merci encore ! ! !

SELECT Employe.Employe_Num, Employe.Employe_Nom_Patronymique,
RQ1.SommeDeHeureSup_Duree_APayer, RQ1.SommeDeHeureSup_Duree_ARecup,
RQ2.SommeDeAbsence_DureeHeure
FROM RQ2 RIGHT JOIN (Employe LEFT JOIN RQ1 ON Employe.Employe_Num =
RQ1.HeureSup_Num) ON RQ2.Absence_Num = Employe.Employe_Num;




Salut Eric ! ! !
Merci de ton aide précieuse.
C'est exactement ce dont j'ai besoin.
Il ne me reste plus qu'à effectuer quelques tests.



re,

J'ai interprété.
Une requête RQ1 qui calcule le nb d'heures supp paramétrée sur la date
(ex: du 11/01/07 au 18/01/07)
Une requête RQ2 qui calcule le nb d'heures d'absence paramétrée sur la
même période(du 11/01/07 au 18/01/07)
Enfin une requête globale qui donne la liste des tous les employés, avec
les heures supp et les absences le cas échéant, pour cette période.
C'était ce que tu voulais ?

ici: http://cjoint.com/?duoTvLj7vx

Le lien a été créé: http://cjoint.com/?dumemf6lHE


re,

Pour les 2 requêtes, la jointure doit être du type Afficher tous les
enregistrements de la table Employés et seulement ceux de la table
heures_Supp(respectivement Absence) pour lesquels les champs joints sont
égaux ( à quelque chose près).

Si prob et si pas confidentiel, mets la bd (format Access 2000) avec
quelques enregistrements significatifs, après l'avoir compactée et
zippée sur www.cjoint.com et postes en retour le lien donné.
Il doit être possible de ne faire qu'une seule requête.

Merci pour ta réponse ! ! !

Le problème est que je ne sais pas quoi choisir.

J'ai fait quelques tests en vain.

Voici une brève présentation de ma base :
EMPLOYE (Employe_Num Entier Numéro Automatique; Employe_Nom Texte,
Employe_Prenom Texte)
Heures_Supp(Heures_Supp_Num Entier reprenant le Numéro de Employe_Num;
Heures_Supp_Date Date; Heures_Supp_Duree Décimal)
Absence(Absence_Num Entier reprenant le Numéro de Employe_Num;
Absence_Date_Debut Date; Absence_Date_Fin Date; Absence_Duree Decimal)

En voulant afficher tous les employés avec le NBRE d'Heures_Supp et le
NBRE d'Absences de chacun, le type de jointure actuel ne m'affiche
- que les employés ayant fait des Heures Supp pendant la période saisie (en
ce qui concerne ma requête sur les Heures Supp),
- que les employés ayant fait des Absences pendant la période saisie (en ce
qui concerne ma requête sur les Absences).

Quel type de jointure faut-il entre la table Employe et la table
Heures_Supp d'un côté, et la table Employe et la table Absence de l'autre
côté.

En espérant que je puisse mélanger les 2 requêtes et ainsi avoir pour
tous les employés les infos désirées.

Merci de ton aide.


Bonjour,

Je suppose que tes requêtes font appel à 2 tables. Il faut pour cela
que tu modifies le type de jointure entre ces 2 tables.
Cliques droit sur la jointure et tu choisis l'option 2 ou 3 dans les
jointures : Afficher tous les enreg. de la table et uniquement ceux ...

Bonjour tout le monde !

J'ai un problème avec une de mes requêtes.
Je dispose d'une base sur laquelle j'alimente les Heures Supp et les
Absences de chaque employé.
Mon but est de connaître pour une période saisie (une date de début et une
date de fin, en général cela fait une semaine) les Heures Supp et les
Absences de chacun, et d'en déduire par un calcul les Heures à récupérer ou à
rattraper.
J'ai les requêtes me donnant séparemment ces 2 éléments.

Mon problème est le suivant : la 1ère requête ne me donne que les employés
ayant fait des Heures Supp mais ne m'affiche pas ceux qui n'en ont pas fait
. Je voudrais voir tous les employés, même ceux qui n'ont pas d'Heures Supp
(ceux-ci auraient 0 dans la colonne "NB Heures Supp").
Je voudrais la même chose pour la seconde requête concernant les Absences.
Ainsi, je pourrai calculer la différence et je pourrai afficher dans un état
le détail de chaque employé pour la semaine saisie.

Merci à tous de votre aide.
--

A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

--


A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr










Eric
Le #6189721
Bonsoir,

En premier lieu, excuses moi pour la bd envoyée. Pris par le temps je ne
t'ai pas adressée la version finalisée mais à ce que je vois tu as
compris les rôles des paramètres quoi et quoi2.

le schéma est le suivant :
RQ1<---Employe--->RQ2
On veut tous les employés et seulement ceux de RQ1 pour lesquels les
champs joints (ici Employe_Num =HeuresSup_Num.) sont égaux.
Cette première partie de la requête te retourne tous les Employe_Num
avec pour certains des champs renseignés et d'autres Null car pas
d'heures supp. Jointure Gauche
A cet ensemble, on associe la requête RQ2 et, du résultat, on extrait
tous les enregistrements de l'ensemble(soit tous les Employe_Num) et
ceux de RQ2 pour lesquels le champ de jointure est identique
(Employe_Num«sence_Num)- Jointure Droite. Associée à la première
partie, cette deuxième partie va donc afficher TOUS les employés dont
certains ont des heures supp et d'autres des heures d'absence.

Pa sur d'avoir été très clair.

Une dernière question :
La requête Globale fonctionne, mais je ne la comprends pas.
Peux-tu m'expliquer dans l'ordre les jointures faites dans le FROM
entre RQ1, Employe, et RQ2 (je ne me souviens plus des RIGHT JOIN ou LEFT
JOIN) ?
Merci encore ! ! !

SELECT Employe.Employe_Num, Employe.Employe_Nom_Patronymique,
RQ1.SommeDeHeureSup_Duree_APayer, RQ1.SommeDeHeureSup_Duree_ARecup,
RQ2.SommeDeAbsence_DureeHeure
FROM RQ2 RIGHT JOIN (Employe LEFT JOIN RQ1 ON Employe.Employe_Num =
RQ1.HeureSup_Num) ON RQ2.Absence_Num = Employe.Employe_Num;





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

rafael
Le #6189251
La RQ GLOBAL m’affiche TOUS les employés avec les Heures Supp, les Heures
Normales, et les Absences de la période saisie.
Je souhaite n’afficher que les employés qui sont actifs pendant la période
saisie.
Je pensais qu’étant donné que ceci était traité dans les requêtes, nous
n’allions avoir dans le résultat final que les employés actifs. Or, j’ai la
liste complète des employés, et pour ceux qui ne sont plus ou pas encore
actifs, j’ai dans la colonne « Nb H NORMALES » le message « #Erreur »
J’ai essayé de rajouter dans RQ GLOBAL les lignes ci-dessous afin
d’éliminer ce problème, en vain.
WHERE Carriere.Carriere_Date_Entree<=[Saisissez la Fin de la Période] And
(Carriere.Carriere_Date_Sortie Is Null Or
Carriere.Carriere_Date_Sortie>=[Saisissez le Début de la Période]).

Peux-tu m’aider/m’expliquer mon erreur ? ? ?


Voici les 3 requêtes :

RQ1 :
SELECT [Saisissez le Début de la Période], [Saisissez la Fin de la
Période], SUM(HeureSup.HeureSup_Duree_APayer) AS [Nb H SUP A PAYER],
SUM(HeureSup.HeureSup_Duree_ARecup) AS [Nb H SUP A RECUP],
Employe.Employe_Nom_Patronymique AS NOM, Employe.Employe_Prenom AS PRENOM,
HeureSup_Num
FROM (Employe INNER JOIN Carriere ON
Employe.Employe_NumÊrriere.Carriere_Employe_Num) INNER JOIN HeureSup ON
Employe.Employe_Num=HeureSup.HeureSup_Num
WHERE HeureSup_Date Between [Saisissez le Début de la Période] And
[Saisissez la Fin de la Période] And
Carriere.Carriere_Date_Entree<=[Saisissez la Fin de la Période] And
(Carriere.Carriere_Date_Sortie Is Null Or
Carriere.Carriere_Date_Sortie>=[Saisissez le Début de la Période]) And
HeureSup_Date Between Carriere.Carriere_Date_Entree And
IIf(Carriere.Carriere_Date_Sortie Is
Null,#12/31/9999#,Carriere.Carriere_Date_Sortie)
GROUP BY Employe.Employe_Nom_Patronymique, Employe.Employe_Prenom,
HeureSup_Num;


RQ2 :
SELECT [Saisissez le Début de la période] AS [DEBUT PERIODE],
[Saisissez la Fin de la période] AS [FIN PERIODE],
Employe.Employe_Nom_Patronymique AS NOM, Employe.Employe_Prenom AS PRENOM,
SUM(IIf(Absence.Absence_Date_Debut«sence.Absence_Date_Fin,Absence_DureeHeure,NbHoursOpenDay(IIf([Saisissez
le Début de la période]>Absence.Absence_Date_Debut,[Saisissez le Début de la
période],Absence.Absence_Date_Debut),IIf([Saisissez la Fin de la
période]>Absence.Absence_Date_Fin,Absence.Absence_Date_Fin,[Saisissez la Fin
de la période]),Carriere.Carriere_Num)))/5 AS [NB HEURES TRAVAILLEES
ABSENTES], Absence_Num
FROM AbsenceType INNER JOIN (((Employe INNER JOIN Carriere ON
Employe.Employe_NumÊrriere.Carriere_Employe_Num) INNER JOIN Horaire ON
Carriere.Carriere_Num=Horaire.Horaire_Num) INNER JOIN Absence ON
Employe.Employe_Num«sence.Absence_Num) ON
AbsenceType.AbsenceType_Num«sence.Absence_Absence_Type_Num
WHERE (Absence.Absence_Date_Debut>Êrriere.Carriere_Date_Entree And
(Absence.Absence_Date_Fin<Êrriere.Carriere_Date_Sortie Or
Carriere.Carriere_Date_Sortie Is Null) And
Year(Absence.Absence_Date_Debut)=Year([Saisissez le Début de la Période]) And
Year(Absence.Absence_Date_Fin)=Year([Saisissez la Fin de la Période])) And
(year(Carriere.Carriere_Date_Entree)<=Year([Saisissez le Début de la
Période])) And (Carriere.Carriere_Date_Sortie Is Null Or
year(Carriere.Carriere_Date_Sortie)>=Year([Saisissez la Fin de la Période]))
And (Absence.Absence_Date_Debut Between [Saisissez le Début de la Période]
And [Saisissez la Fin de la Période] Or Absence.Absence_Date_Fin Between
[Saisissez le Début de la Période] And [Saisissez la Fin de la Période] Or
(Absence.Absence_Date_Debut<[Saisissez le Début de la Période] And
Absence.Absence_Date_Fin>[Saisissez la Fin de la Période]))
GROUP BY Employe.Employe_Nom_Patronymique, Employe.Employe_Prenom,
Absence_Num;

RQ3 :
SELECT Employe.Employe_Nom_Patronymique, Employe.Employe_Prenom,
Employe.Employe_Num, Carriere.Carriere_Num,
Carriere.Carriere_Date_Entree,Carriere.Carriere_Date_Sortie
,NbHoursOpenDay( IIf( [Saisissez le Début de la
période]>Êrriere_Date_Entree, [Saisissez le Début de la période],
Carriere_Date_Entree ) , IIf( [Saisissez la Fin de la
période]>Êrriere_Date_Sortie,Carriere_Date_Sortie, [Saisissez la Fin de la
période]), Carriere.Carriere_Num) AS [Nb H NORMALES]
FROM Employe LEFT JOIN Carriere ON Employe.Employe_Num =
Carriere.Carriere_Employe_Num
WHERE Carriere.Carriere_Date_Entree<=[Saisissez la Fin de la Période] And
(Carriere.Carriere_Date_Sortie Is Null Or
Carriere.Carriere_Date_Sortie>=[Saisissez le Début de la Période]);


RQ GLOBAL :
SELECT Employe.Employe_Nom_Patronymique, Employe.Employe_Prenom,
RQ3.[Nb H NORMALES],
RQ1.[Nb H SUP A PAYER], RQ1.[Nb H SUP A RECUP], RQ2.[NB HEURES TRAVAILLEES
ABSENTES]
FROM RQ3 RIGHT JOIN
(RQ2 RIGHT JOIN (Employe LEFT JOIN RQ1 ON
Employe.employe_Num=RQ1.HeureSup_Num) ON RQ2.Absence_Num=Employe.Employe_Num)
ON RQ3.Employe_Num =Employe.Employe_num;


Encore merci.



Bonsoir,

En premier lieu, excuses moi pour la bd envoyée. Pris par le temps je ne
t'ai pas adressée la version finalisée mais à ce que je vois tu as
compris les rôles des paramètres quoi et quoi2.

le schéma est le suivant :
RQ1<---Employe--->RQ2
On veut tous les employés et seulement ceux de RQ1 pour lesquels les
champs joints (ici Employe_Num =HeuresSup_Num.) sont égaux.
Cette première partie de la requête te retourne tous les Employe_Num
avec pour certains des champs renseignés et d'autres Null car pas
d'heures supp. Jointure Gauche
A cet ensemble, on associe la requête RQ2 et, du résultat, on extrait
tous les enregistrements de l'ensemble(soit tous les Employe_Num) et
ceux de RQ2 pour lesquels le champ de jointure est identique
(Employe_Num«sence_Num)- Jointure Droite. Associée à la première
partie, cette deuxième partie va donc afficher TOUS les employés dont
certains ont des heures supp et d'autres des heures d'absence.

Pa sur d'avoir été très clair.

Une dernière question :
La requête Globale fonctionne, mais je ne la comprends pas.
Peux-tu m'expliquer dans l'ordre les jointures faites dans le FROM
entre RQ1, Employe, et RQ2 (je ne me souviens plus des RIGHT JOIN ou LEFT
JOIN) ?
Merci encore ! ! !

SELECT Employe.Employe_Num, Employe.Employe_Nom_Patronymique,
RQ1.SommeDeHeureSup_Duree_APayer, RQ1.SommeDeHeureSup_Duree_ARecup,
RQ2.SommeDeAbsence_DureeHeure
FROM RQ2 RIGHT JOIN (Employe LEFT JOIN RQ1 ON Employe.Employe_Num =
RQ1.HeureSup_Num) ON RQ2.Absence_Num = Employe.Employe_Num;





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Eric
Le #6189041
Bonjour Rafael,

La RQ GLOBAL m’affiche TOUS les employés avec les Heures Supp, les Heures
Normales, et les Absences de la période saisie.
Je souhaite n’afficher que les employés qui sont actifs pendant la période
saisie.


Oui mais tu avais demandé au départ:

J'ai les requêtes me donnant séparemment ces 2 éléments.
Mon problème est le suivant : la 1ère requête ne me donne que les employés
ayant fait des Heures Supp mais ne m'affiche pas ceux qui n'en ont pas fait
. Je voudrais voir tous les employés, même ceux qui n'ont pas d'Heures Supp
(ceux-ci auraient 0 dans la colonne "NB Heures Supp").
Je voudrais la même chose pour la seconde requête concernant les Absences.


Il n'était pas, pour moi, question de personnel en activité.

Je pensais qu’étant donné que ceci était traité dans les requêtes,


Pas envisagé une seule minute.

nous n’allions avoir dans le résultat final que les employés actifs. Or, j’ai la
liste complète des employés,


Normal avec les jointures demandées

et pour ceux qui ne sont plus ou pas encore
actifs, j’ai dans la colonne « Nb H NORMALES » le message « #Erreur »


Là, tu ne m'as pas gaté avec ces *3* lignes de SQL ;-)

J’ai essayé de rajouter dans RQ GLOBAL les lignes ci-dessous afin
d’éliminer ce problème, en vain.
WHERE Carriere.Carriere_Date_Entree<=[Saisissez la Fin de la Période] And
(Carriere.Carriere_Date_Sortie Is Null Or
Carriere.Carriere_Date_Sortie>=[Saisissez le Début de la Période]).

Peux-tu m’aider/m’expliquer mon erreur ? ? ?
[couic...]


Je crois que je prendrai le problème à l'envers.
Faire une requête donnant les employés à traiter, c'est à dire
ceux qui sont 'actifs' selon ton expression.
Puis faire des jointures gauche et droite avec les 2 autres
requêtes sans mettre de condition Where sur l'activité.
Dès lors que tu fais correctement les jointures externes,
tu auras tous les employés actifs et pour ceux-ci, en plus
les totaux HSup, HSup à récupérer et HEURES ABSENTES.


PS : 1 bonne page de SQL, qui plus est d'Access, c'est hard à lire !
J'ai donc shunté certains passages mais la philosophie du traitement
doit être pas trop éloignée.

--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Publicité
Poster une réponse
Anonyme