Requête cumul access

Fermé
priss - 16 juin 2010 à 14:22
 oo1 - 20 févr. 2013 à 14:36
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

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 vendredi 5 juin 2009 Statut Membre Dernière intervention 3 novembre 2016 39
16 juin 2010 à 14:53
Es-ce que une affaire dure grand max une (1) semaine ?
0
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 vendredi 5 juin 2009 Statut Membre Dernière intervention 3 novembre 2016 39
Modifié par termgsi le 16/06/2010 à 15:49
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
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 vendredi 5 juin 2009 Statut Membre Dernière intervention 3 novembre 2016 39
16 juin 2010 à 16:14
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 vendredi 5 juin 2009 Statut Membre Dernière intervention 3 novembre 2016 39
16 juin 2010 à 14:31
Bonjour,

Es-tu sur de la justesse de ton MLD
0