Bonjour,
J'ai fait plusieurs recherches sur le forum, mais je n'arrive pas à trouver de sujet similaire alors je me lance.
Tout d'abord, la structure de mes tables versions simplifiées pour expliquer mon problème :
- occupation(numero_occupation,individu,type_occupation#,duree)
- type_occupation(type_occupation,libelle_occupation)
La table type_occupation contient une liste de nomenclature, celles qui m'intéressent :
1-Heures supplémentaires
2-Récup heures supp.
Et dans la table occupation, j'ai un enregistrement par individu pour chaque type occupation et par occupation.
Par exemple pour l'individu JEAN j'aurais autant d'enregistrements avec un type_occupation=1 (heures supp) qu'il n'en a fait réellement
589-JEAN-1-120
590-JEAN-1-30
591-JEAN-1-15
592-JEAN-2-30
593-JEAN-2-45
Durée en minutes.
Maintenant mon problème, je souhaiterais avec un select pouvoir cumuler la somme des heures supp, puis la somme des congés compensateurs sur une même ligne pour chaque individu.
Dans l'exemple du dessus, je voudrais pouvoir avoir :
JEAN - Heures supp:165minutes - Récup : 75minutes - Reste:90minutes
FRED - ..................
J'ai tenté avec sum(duree) over partition by également en faisant deux fois appels à ma table occupation avec des alias différents, mais que nenni ! Je bloque depuis un moment dessus et je n'arrive pas à trouver de solution, si ce n'est la solution pl_sql mais j'ai par habitude de créer mes requètes par des vues qui sont plus simples pour mes collègues pour ré-extraire les infos actualisées en temps réel.
Toute proposition est la bienvenue, et désolé si s'est une question de newbie :/
Merci à tous.
Frédéric.
Partager