Requête cumul access

priss -  
 oo1 -
Bonjour,

j'ai créée une base de donnée pour calculé la rentabilité de chaque chantier.

je vous mets le MLD correspondant à la demande que je vous fait :

Salarié (CodeSalarié, NomSalarié, PrénomSalarié)
Affaire (NumAffaire, NomAffaire, VilleAffaire, DescrpitionAffaire)
NombreHeure (NumNbHeure, NbHeure)
Travailler (N°, CodeSalarié, NumAffaire, NumNbHeure, NumSemaine)

le champ N° de la table Travailler, est la clé primaire pour éviter les doublons.

j'ai fait comme requêtes :
SELECT Affaire.NumAffaire, Affaire.NomAffaire, Travailler.CodeSalarié, Travailler.NumSemaine, Travailler.NumNbHeure, NbHeures.NbHeure AS [Cumul des heures]
FROM Salarié INNER JOIN (NbHeures INNER JOIN (Affaire INNER JOIN Travailler ON Affaire.NumAffaire = Travailler.NumAffaire) ON NbHeures.NumNbHeure = Travailler.NumNbHeure) ON Salarié.CodeSalarié = Travailler.CodeSalarié;



ma requête ne me semble pas correct étant donné des résultats qu'elle m'affichent.
ce que j'aimerai qu'elle me donne comme résultat c'est par exemple pour l'affaire N°01 un cumul des heures passées sur ce chantier des salariés N°01, N°02 et N°03 pour la semaine N°15.

merci pour votre aide =)


2 réponses

priss
 
oui,
pour la table travailler comme je l'ai dit j'ai du ajouté le champ N° pour éviter les doublons, car normalement NumAffaire, CodeSalarié et NumNbHeure doivent être les clés étrangères.
sinon par exemple ca fait des doublons comme cet exemple : si le salarié n°1 travaille sur le chantier n°1 et le numNbHeure est le N°1 pour la semaine 15, pour la semaine 17 cela peut être la même chose donc cela fait des doublons
1
termgsi Messages postés 678 Date d'inscription   Statut Membre Dernière intervention   39
 
Es-ce que une affaire dure grand max une (1) semaine ?
0
priss
 
non,
les affaires dure entre 1 mois minimum et 1 an.
en fait une affaire regroupe plusieurs devis qui correspond à un client, donc par exemple l'affaire n°1 peut durer 8 semaines et comporter 4 devis
0
termgsi Messages postés 678 Date d'inscription   Statut Membre Dernière intervention   39
 
Voilà ce que je te propose dabord :

Salarié (CodeSalarié, NomSalarié, PrénomSalarié)
Affaire (NumAffaire, NomAffaire, VilleAffaire, DescrpitionAffaire,NumSemDeb,NumSemFin,NbHeures)
Travailler (CodeSalarié, NumAffaire, NbHeureTravailler)
0
priss
 
NumSemFin doit être remplis ou peut rester NULL ?
parce que je ne penses pas qu'ils sachent quand se fini un chantier (je suis en stage j'aurai ptète du préciser)
je comprends pas l'existence du champ NbHeureTravailler si dans Affaire NbHeures figurent déjà !
0
termgsi Messages postés 678 Date d'inscription   Statut Membre Dernière intervention   39
 
Salarié (*CodeSalarié*, NomSalarié, PrénomSalarié)
Affaire (*NumAffaire*, NomAffaire, VilleAffaire, DescrpitionAffaire)
Travailler (#CodeSalarié,# NumAffaire, NbHeureTravailler,NumSemaine)

** Clé Primaire
## Clé étrangère
0
termgsi Messages postés 678 Date d'inscription   Statut Membre Dernière intervention   39
 
Bonjour,

Es-tu sur de la justesse de ton MLD
0