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
| CREATE PROCEDURE Ps_UpdateGains
AS
BEGIN
DECLARE @dateDeb DATETIME,
@dateFin DATETIME
-- le format 120 dans la fonction CONVERT est le format ISO des dates : YYYYMMDD
-- son transtypage en type DATETIME aboutit à une valeur de date dont l'heure est nulle (YYYYMMDD 00:00:00)
-- pour trouver la date de début du mois, on enlève à la date courante le n° du jour courant à la date courante et on ajoute 1
SELECT @dateDeb = DATEADD(day, -DAY(GETDATE()) + 1, CAST(CONVERT(CHAR(10), GETDATE(), 120) AS DATETIME)),
@dateFin = DATEADD(month, 1, @dateDeb)
-- Recherche des gains du mois en cours
WITH
CTE_GAINS_MOIS AS
(
SELECT refgain, gain
FROM dbo.gain
WHERE dtdate BETWEEN @dateDeb AND @dateFin
AND V = 1
)
UPDATE dbo.Gain
SET gain = 0,
gainvalid = gain,
V = 0,
VValid = 1,
AnnVali = 1,
AnnValiDt = GETDATE()
FROM dbo.Gain AS G
JOIN CTE_GAINS_MOIS AS C
ON G.refgain = C.refgain
END |
Partager