1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
SELECT ID_SALARIE, TYPE, NOMBRE, ORDRE
INTO #T2
FROM
(SELECT 'TOTO' AS ID_SALARIE, 'HSUP' AS TYPE, 2 AS NOMBRE, 0 AS ORDRE
UNION
SELECT 'TITI' AS ID_SALARIE, 'HSUP' AS TYPE, 12 AS NOMBRE, 0 AS ORDRE
UNION
SELECT 'TOTO' AS ID_SALARIE, 'NUIT' AS TYPE, 12 AS NOMBRE, 1 AS ORDRE
UNION
SELECT 'TOTO' AS ID_SALARIE, 'POSTE' AS TYPE, 6 AS NOMBRE, 2 AS ORDRE
UNION
SELECT 'TITI' AS ID_SALARIE, 'NUIT' AS TYPE, 5 AS NOMBRE, 1 AS ORDRE
UNION
SELECT 'TITI' AS ID_SALARIE, 'POSTE' AS TYPE, 9 AS NOMBRE, 2 AS ORDRE
UNION
SELECT 'TITI' AS ID_SALARIE, 'SA' AS TYPE, 4 AS NOMBRE, 3 AS ORDRE
) as src
select * from #T2
--la logique : On paye en premier les Heures sup (HSUP) car le plus favorable pour le salarié
--puis on paye les heures majorées, par ordre d'application si il en reste par rapport aux heures sup payées. Il faut à chaque niveau décrémenter le compteur d'heures sup
--le resultat que je veux obtenir
-- TOTO
---- HSUP 2
---- NUIT 10 (12 - 2 de HSUP) compteur d'heure sup = 0
---- POSTE 6 (en totalité car il ne reste plus d'heure sup)
-- TITI
---- HSUP 12
---- NUIT 0 (car les 5 de NUIT sont déjà inclus en totalité dans les HSUP) compteur d'heure sup = 7 (12-5)
---- POSTE 2 (9 - 7 car sur les 9, 7 sont pris sur les HSUP restantes
---- SA 4
DROP TABLE #T2 |
Partager