IF EXISTS(SELECT 1 FROM PF p, XFJLB x, CKWL c WHERE p.cpbh=x.cpbh AND p.wlbh=c.wlbh AND x.lsh='2006-1-1-0001')
BEGIN
UPDATE c
SET c.kcsl=c.kcsl-p.yl*x.sl
FROM PF p, XFJLB x, CKWL c
WHERE p.cpbh=x.cpbh
AND p.wlbh=c.wlbh
AND x.lsh='2006-1-1-0001'
END
ELSE
BEGIN
INSERT INTO CKWL(ckbh, ckmc, wlbh, wlmc, kcsl, dj)
SELECT k.ckbh, k.ckmc, w.wlbh, w.wlmc, -p.yl*x.sl, w.dj
FROM CKDA k, WLDA w, PF p, XFJLB x, CKWL c
WHERE x.lsh='2006-1-1-0001'
AND x.cw=k.ckmc
AND x.cpbh=p.cpbh
AND p.wlbh=w.wlbh
END

解决方案 »

  1.   

    IF EXISTS(SELECT 1 FROM PF p, XFJLB x, CKWL c WHERE p.cpbh=x.cpbh AND p.wlbh=c.wlbh AND x.lsh='2006-1-1-0001')
    BEGIN
    UPDATE c
    SET c.kcsl=c.kcsl-p.yl*x.sl
    FROM PF p, XFJLB x, CKWL c
    WHERE p.cpbh=x.cpbh
    AND p.wlbh=c.wlbh
    AND x.lsh='2006-1-1-0001'
    END
    ELSE
    BEGIN
    INSERT INTO CKWL(ckbh, ckmc, wlbh, wlmc, kcsl, dj)
    SELECT k.ckbh, k.ckmc, w.wlbh, w.wlmc, -p.yl*x.sl, w.dj
    FROM CKDA k, WLDA w, PF p, XFJLB x--这里去掉CKWL
    WHERE x.lsh='2006-1-1-0001'
    AND x.cw=k.ckmc
    AND x.cpbh=p.cpbh
    AND p.wlbh=w.wlbh
    END