Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Requête analyse croisée et valeurs correspondantes nulles

2 réponses
Avatar
Jefflec
Bonjour,

J'ai un problème lorsque j'effectue une requête analyse croisée : je ne sais
pas trop comment expliquer, alors je vais donner un exemple.

J'ai 3 tables :
- "employés" (N°emp, nom, prénom...)
- "type d'heures" (N°type, libellé)
- "travailler" (N°, nbheures, FKn°emp, FKn°type)

Ainsi, un employé peut réaliser plusieurs "type d'heures", à savoir : heure
de travail, congès payés (CP), congès maladie (CM), formation, jour férié
etc...
On remplit donc la table "travailler", qui fait la jonction entre "employés"
et "type d'heures".

Exemple :
Monsieur X a passé 3 heures de travail
M. X a pris 1 heure de congès payés
M. Y a pris 6 heures de congès payés
M. Y a fait 6 heures de formation

J'ai donc fait une requête analyse croisée pour traiter tout ça et j'arrive
à un résultat concluant, comme celui ci :
(je force l'affichage des colonnes, même si aucune donnée n'y figure, grâce
à l'option "en tête des colonnes" des propriétés du champ de ma requête)
travail CP CM Formation Férié
M. X 3 1
M. Y 6 6

Jusqu'à là, aucun problème.
Maintenant, imaginez que M. Z, n'a pas rentré ses heures...
Le problème, c'est que M. Z ne figure pas dans la requête analyse croisée,
vu qu'il n'a pas entré d'heures dans la table "travailler" !!!

Comment puis-je avoir, dans ma requête, la totalité des employés même s'ils
n'ont pas entré d'heures ???

Exemple de ce que je voudrais :
travail CP CM Formation Férié
M. X 3 1
M. Y 6 6
M. Z

NB : j'ai bien essayé de modifier la jointure dans ma requête, pour "inclure
tous les enregistrements de la table 'employés' et seulement ceux de la
table 'travailler' pour lesquels les champs joints sont égaux", mais j'ai
une erreur à l'exécution de la requête "Jointure externe ambiguës".
La création de sous-requêtes ne m'apporte pas la solution non plus...

Merci de m'avoir lu jusqu'au bout...
Merci d'avance pour votre aide.

Jefflec

2 réponses

Avatar
Jessy SEMPERE
Bonjour

En fait tu devrais obtenir ce que tu souhaite en passant par une autre
requête où tu mets ta requête analyse croisée et ta table employé.

Créer une jointure sur le n° de l'employé du type :
"inclure tous les enregistremennts de la tables employé..."

Normalement ça devrait fonctionner

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Jefflec" a écrit dans le message news:
#
Bonjour,

J'ai un problème lorsque j'effectue une requête analyse croisée : je ne
sais

pas trop comment expliquer, alors je vais donner un exemple.

J'ai 3 tables :
- "employés" (N°emp, nom, prénom...)
- "type d'heures" (N°type, libellé)
- "travailler" (N°, nbheures, FKn°emp, FKn°type)

Ainsi, un employé peut réaliser plusieurs "type d'heures", à savoir :
heure

de travail, congès payés (CP), congès maladie (CM), formation, jour férié
etc...
On remplit donc la table "travailler", qui fait la jonction entre
"employés"

et "type d'heures".

Exemple :
Monsieur X a passé 3 heures de travail
M. X a pris 1 heure de congès payés
M. Y a pris 6 heures de congès payés
M. Y a fait 6 heures de formation

J'ai donc fait une requête analyse croisée pour traiter tout ça et
j'arrive

à un résultat concluant, comme celui ci :
(je force l'affichage des colonnes, même si aucune donnée n'y figure,
grâce

à l'option "en tête des colonnes" des propriétés du champ de ma requête)
travail CP CM Formation Férié
M. X 3 1
M. Y 6 6

Jusqu'à là, aucun problème.
Maintenant, imaginez que M. Z, n'a pas rentré ses heures...
Le problème, c'est que M. Z ne figure pas dans la requête analyse croisée,
vu qu'il n'a pas entré d'heures dans la table "travailler" !!!

Comment puis-je avoir, dans ma requête, la totalité des employés même
s'ils

n'ont pas entré d'heures ???

Exemple de ce que je voudrais :
travail CP CM Formation Férié
M. X 3 1
M. Y 6 6
M. Z

NB : j'ai bien essayé de modifier la jointure dans ma requête, pour
"inclure

tous les enregistrements de la table 'employés' et seulement ceux de la
table 'travailler' pour lesquels les champs joints sont égaux", mais j'ai
une erreur à l'exécution de la requête "Jointure externe ambiguës".
La création de sous-requêtes ne m'apporte pas la solution non plus...

Merci de m'avoir lu jusqu'au bout...
Merci d'avance pour votre aide.

Jefflec




Avatar
Jefflec
C'est simple, et ça marche...
La seule chose qui m'embête, c'est que je vais avoir le double de requête,
mais tant pis :o)

Merci bien Jessy !
A bientôt,
Jefflec


"Jessy SEMPERE" a écrit dans le message de
news:bjhuem$265$
Bonjour

En fait tu devrais obtenir ce que tu souhaite en passant par une autre
requête où tu mets ta requête analyse croisée et ta table employé.

Créer une jointure sur le n° de l'employé du type :
"inclure tous les enregistremennts de la tables employé..."

Normalement ça devrait fonctionner

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Jefflec" a écrit dans le message news:
#
Bonjour,

J'ai un problème lorsque j'effectue une requête analyse croisée : je ne
sais

pas trop comment expliquer, alors je vais donner un exemple.

J'ai 3 tables :
- "employés" (N°emp, nom, prénom...)
- "type d'heures" (N°type, libellé)
- "travailler" (N°, nbheures, FKn°emp, FKn°type)

Ainsi, un employé peut réaliser plusieurs "type d'heures", à savoir :
heure

de travail, congès payés (CP), congès maladie (CM), formation, jour
férié


etc...
On remplit donc la table "travailler", qui fait la jonction entre
"employés"

et "type d'heures".

Exemple :
Monsieur X a passé 3 heures de travail
M. X a pris 1 heure de congès payés
M. Y a pris 6 heures de congès payés
M. Y a fait 6 heures de formation

J'ai donc fait une requête analyse croisée pour traiter tout ça et
j'arrive

à un résultat concluant, comme celui ci :
(je force l'affichage des colonnes, même si aucune donnée n'y figure,
grâce

à l'option "en tête des colonnes" des propriétés du champ de ma requête)
travail CP CM Formation Férié
M. X 3 1
M. Y 6 6

Jusqu'à là, aucun problème.
Maintenant, imaginez que M. Z, n'a pas rentré ses heures...
Le problème, c'est que M. Z ne figure pas dans la requête analyse
croisée,


vu qu'il n'a pas entré d'heures dans la table "travailler" !!!

Comment puis-je avoir, dans ma requête, la totalité des employés même
s'ils

n'ont pas entré d'heures ???

Exemple de ce que je voudrais :
travail CP CM Formation Férié
M. X 3 1
M. Y 6 6
M. Z

NB : j'ai bien essayé de modifier la jointure dans ma requête, pour
"inclure

tous les enregistrements de la table 'employés' et seulement ceux de la
table 'travailler' pour lesquels les champs joints sont égaux", mais
j'ai


une erreur à l'exécution de la requête "Jointure externe ambiguës".
La création de sous-requêtes ne m'apporte pas la solution non plus...

Merci de m'avoir lu jusqu'au bout...
Merci d'avance pour votre aide.

Jefflec