Bonjour,
Je cherche à faire une requête prélevant des informations dans 4 tables.
Elle consiste à présenter les résultats journaliers d’agents.
Voici la composition des tables :
AGENTS : ID, NOM, PRENOM, AGE
OBEJCTIFS : ID, DATE, CIBLE
DOSSIERS :ID, DATE, EFFECTUE
SYNTHESES : ID, BUREAU, HIVER, PRINTEMPS, ETE, AUTOMNE
Chaque dossier effectué créé une ligne dans la BDD.
La requête suivante fonctionne, mais donne plusieurs lignes pour une même date (pour les 2 premiers agents).
Le problème est que je souhaite présenter ces résultats de manière à avoir qu’une seule ligne par jour afin de pouvoir comparer les résultats aux cibles (toujours pour les 2 premiers agents).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 select NOM ||' '|| PRENOM as Nom Prénom, BUREAU, DATE, EFFECTUE, CIBLE from AGENTS join SYNTHESES on (AGENTS.ID = SYNTHESE.ID) join DOSSIERS on (AGENTS.ID = DOSSIERS.ID) join OBJECTIFS on (AGENTS.ID = OBJECTIFS.ID) and (DOSSIERS.DATE = OBJECTIFS.DATE) where ID = 1 and ID = 2
J’ai tenté ceci qui me donne l’erreur 104 suivante : Invlalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).
Je ne suis pas un expert en SQL et je blaire comme il faut avec celle-ci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 select NOM ||' '|| PRENOM as Nom Prénom, BUREAU, DATE, sum(EFFECTUE), CIBLE from AGENTS join SYNTHESES on (AGENTS.ID = SYNTHESE.ID) join DOSSIERS on (AGENTS.ID = DOSSIERS.ID) join OBJECTIFS on (AGENTS.ID = OBJECTIFS.ID) and (DOSSIERS.DATE = OBJECTIFS.DATE) where ID = 1 and ID = 2 group by DATE order by NOM, DATE
Quelqu'un aurait-il une solution?
Merci de votre aide,
Partager