1、不要fldZE(总额),fldYLBX(养老保险),fldSFGZ(实发工资).字段,查询时用公式计算,最好用存储过程查询。2、计算字段,具体看帮助3、触发器:
CREATE TRIGGER TR_TabGZ_UPIN
ON TabGZ
FOR UPDATE,INSERT
ASUPDATE TAB
SET fldZE=TAB.fldJBF+TAB.fldYCF+TAB.fldXYF
FROM TabGZ TAB,INSERTED I
WHERE TAB.fldGZ_date=I.fldGZ_date
AND TAB.fldEmp_ID=I.fldEmp_IDUPDATE TAB
SET fldYLBX=CASE WHEN TAB.fldZE<880 THEN 0
WHEN TAB.fldZE>=880 and TAB.fldZE<1380 THEN TAB.fldZE*0.1
ELSE TAB.fldZE*0.15
END,
fldSFGZ=TAB.fldZE-CASE WHEN TAB.fldZE<880 THEN 0
WHEN TAB.fldZE>=880 and TAB.fldZE<1380 THEN TAB.fldZE*0.1
ELSE TAB.fldZE*0.15
END
FROM TabGZ TAB,INSERTED I
WHERE TAB.fldGZ_date=I.fldGZ_date
AND TAB.fldEmp_ID=I.fldEmp_IDGO
CREATE TRIGGER TR_TabGZ_UPIN
ON TabGZ
FOR UPDATE,INSERT
ASUPDATE TAB
SET fldZE=TAB.fldJBF+TAB.fldYCF+TAB.fldXYF
FROM TabGZ TAB,INSERTED I
WHERE TAB.fldGZ_date=I.fldGZ_date
AND TAB.fldEmp_ID=I.fldEmp_IDUPDATE TAB
SET fldYLBX=CASE WHEN TAB.fldZE<880 THEN 0
WHEN TAB.fldZE>=880 and TAB.fldZE<1380 THEN TAB.fldZE*0.1
ELSE TAB.fldZE*0.15
END,
fldSFGZ=TAB.fldZE-CASE WHEN TAB.fldZE<880 THEN 0
WHEN TAB.fldZE>=880 and TAB.fldZE<1380 THEN TAB.fldZE*0.1
ELSE TAB.fldZE*0.15
END
FROM TabGZ TAB,INSERTED I
WHERE TAB.fldGZ_date=I.fldGZ_date
AND TAB.fldEmp_ID=I.fldEmp_IDGO
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货