Requête cumul access
priss
-
oo1 -
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 :
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 =)
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
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
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
Salarié (CodeSalarié, NomSalarié, PrénomSalarié)
Affaire (NumAffaire, NomAffaire, VilleAffaire, DescrpitionAffaire,NumSemDeb,NumSemFin,NbHeures)
Travailler (CodeSalarié, NumAffaire, NbHeureTravailler)
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à !
Affaire (*NumAffaire*, NomAffaire, VilleAffaire, DescrpitionAffaire)
Travailler (#CodeSalarié,# NumAffaire, NbHeureTravailler,NumSemaine)
** Clé Primaire
## Clé étrangère