Salut,
Nu sunt sigur dacă am înțeles bine ce vrei, nu spun că e cea mai bună soluție, dar poate este util așa ceva:
UPDATE t
SET SalariuDeBaza=NoulSalariuDeBaza,
ContributieSanatate=NouaContributieSanatate,
ContributieCAS=NouaContributieCAS,
DeducerePersonala=NouaDeducerePersonala,
SalariuImpozabil=NoulSalariuImpozabil,
ImpozitSalarii=NoulImpozitSalarii,
SalariuNet=NoulSalariuNet
FROM (
SELECT *, NoulSalariuNet=NoulSalariuDeBaza-NouaContributieSanatate-NouaContributieCAS-NoulImpozitSalarii
FROM (
SELECT *, NoulImpozitSalarii=NoulSalariuImpozabil*0.16
FROM (
SELECT *, NoulSalariuImpozabil=NoulSalariuDeBaza-NouaContributieSanatate-NouaContributieCAS-NouaDeducerePersonala
FROM (
SELECT *, NouaDeducerePersonala=CASE
WHEN NoulSalariuDeBaza<=1000 THEN 250
WHEN NoulSalariuDeBaza>3000 THEN 0
ELSE 250*(1-(NoulSalariuDeBaza-1000)/2000)
END
FROM (
SELECT *, NouaContributieSanatate=NoulSalariuDeBaza*0.055, NouaContributieCAS=NoulSalariuDeBaza*0.105
FROM (
SELECT *, dbo.CalculeazaSalariuDeBaza(s.ID_Salariat,s.Luna) AS NoulSalariuDeBaza
FROM StatSalarii s
WHERE s.Luna=@LunaCurenta
) x1
) x2
) x3
) x4
) x5
) t
Răzvan
PS. Codul este netestat, iar formulele folosite nu reflectă în totalitate impozitele care trebuie calculate.