Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/01/2011, 18h30   #1
Membre du Club
 
hugues dupont
Pompier
Inscription : janvier 2010
Messages : 170
Détails du profil
Informations personnelles :
Nom : hugues dupont
Localisation : France

Informations professionnelles :
Activité : Pompier

Informations forums :
Inscription : janvier 2010
Messages : 170
Points : 44
Points : 44
Par défaut calcul nombre d'heures travaillées

bonjour, à partir de l'application "planning" disponible sur le site, dans la table T_planning, j'ai:
matricule (numérique) du personnel
dateJ (date)
code (texte) correspond au type de garde effectué (soit G,GF,J,N,F,F/2)

j'ai plusieurs requêtes
Nb de garde 24heures(G):
matricule- code(="G" ou "GF")-compte(dateJ)-Nb heures 24=compte(dateJ)*18)
Nb de garde 12heures(J):
matricule- code(="J")-compte(dateJ)-Nb heures 12: (=compte(dateJ)*12)
Nb de garde nuit:
matricule- code(="J")-compte(dateJ)-Nb heures N: (=compte(dateJ)*6)
Nb de garde F:
matricule- code(="F")-compte(dateJ)-Nb heures F: (=compte(dateJ)*4)
....
Pour les requêtes 24 et 12 heures, il y a obligatoirement plusieurs enregistrements, donc matricule est lié (condition jointure sur 1er choix)
Pour les autres requêtes, il n'y a pas obligatoirement d'enregistrement, la jointure par de matricule(24 ou 12) vers la requête.

ma requête récapitulative est:
matricule - Quota annuel:[Req24]compte(dateJ)*18+[Req12]compte(dateJ)*12+[ReqN]compte(dateJ)*6+[ReqF]compte(dateJ)*4

Mon problème est que lorsque je fais la somme des nombre d'heures de chaque requête, dès lors que j'ai une requête sans valeur, je n'obtiens aucun résultat.
Il y a-t-il un moyen pour que la valeur par défaut soit zéro?

n'hésitez pas à me dire si vous ne comprenez pas.
hugodu28 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2011, 17h10   #2
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 205
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 205
Points : 5 255
Points : 5 255
Salut,

Je n'ai pas tout suivi tes formules et tes requêtes, mais si tu souhaites avoir 0 s'il n'y a pas d'enrg. tu peux faite une jointure gauche entre la table des agents et ta requête.

Par exemple cette requête compte le nombre d'heures pour chaque agent et si l'agent n'a pas fait de garde elle affiche 0 :

Code sql :
1
2
SELECT T_Personne.Matricule, T_Personne.Nom, nz(TaRequete.[NbreHeures],0) AS NbHeures
FROM TaRequete RIGHT JOIN T_Personne ON TaRequete.Matricule = T_Personne.Matricule;

Tu peux t'en inspirer

TaRequete désigne ta requête finale contenant le calcul des heures des agents et [NbreHeures] désigne le champ qui fait le calcul dans ta requête.

la fonction nz renvoie 0 si le champ est vide.

A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h17.


 
 
 
 
Partenaires

Hébergement Web