ulysse00
Messages postés291Date d'inscriptionlundi 6 novembre 2006StatutMembreDernière intervention12 mai 2013
-
12 mai 2013 à 19:24
yann_lo_san
Messages postés1137Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention23 janvier 2016
-
13 mai 2013 à 21:03
Bonjour
Je bloque sur une requête SQL
j'ai deux table , le première 'agent' et la deuxième 'récap'
je veux gérer les congés
SELECT h.agt_matricule,h.agt_nom,exercice,CASE
WHEN h.agt_matricule IS NOT NULL THEN 30-sum(t.pris)
WHEN h.agt_matricule IS NULL THEN NVL (30-sum(t.pris),30)
end david
FROM récap t ,h_agent h
WHERE t.matricule (+) =h.agt_matricule AND h.agt_oper='1' AND exercice ='2013'
GROUP BY h.agt_matricule,h.agt_nom ,exercice
cette requête affiche comme résultat
matricule |nom |exercice | david
1145 |david1 | 2013 | 20
9877 |david2 | 2013 | 21
mais les autres agents n'affichent pas david3 et david4
yann_lo_san
Messages postés1137Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention23 janvier 201626 13 mai 2013 à 21:03
Salut,
j'aurais inversé les tables car c'est récap qui est en jointure externe gauche, du coup le case ne sert a rien
SELECT
h.agt_matricule,
h.agt_nom,
exercice,
30 - sum( NVL(t.pris,0) ) david
FROM h_agent h, récap t
WHERE h.agt_matricule (+)= t.matricule
AND h.agt_oper='1' AND exercice ='2013'
GROUP BY h.agt_matricule,h.agt_nom, exercice