SQL之EXISTS用法示例

--1.更新表信息
  --嵌套EXISTS最内层大范围筛选修改日期的"FID"信息
  --次内层进一步筛选符合调拨单的"FID"信息
  --嵌套外层筛选符合"FID"条件的分录内码"FENTRYID"信息

UPDATE A set a.FAMOUNT_LC=0,a.FPRICE=0
FROM     T_SAL_OUTSTOCKENTRY_C A
WHERE EXISTS(SELECT FENTRYID 
            FROM T_SAL_OUTSTOCKENTRY B 
            WHERE A.FENTRYID=B.FENTRYID 
                AND EXISTS(SELECT FID 
                           FROM T_SAL_OUTSTOCKENTRY_R C 
                           WHERE C.FID=B.FID AND C.FSRCBILLNO LIKE 'CA%'
                                AND EXISTS(SELECT FID 
                                           FROM T_SAL_OUTSTOCK D 
                                           WHERE D.FID=C.FID AND CONVERT(VARCHAR(10),D.FDATE,120)>='2018-07-01'
                                           ) 
                           )
             )
--2.更新表信息
--方法一:
UPDATE B set B.FCOSTAMOUNT=0,B.FCOSTPRICE=0
FROM T_SAL_OUTSTOCK A
  LEFT JOIN T_SAL_OUTSTOCKENTRY_F B ON B.FID=A.FID
WHERE CONVERT(VARCHAR(10),A.FDATE,120)>='2018-07-01' --A.FBILLNO='JC1807-0322'
AND ISNULL(B.FCOSTAMOUNT,0)<>0
AND EXISTS(SELECT FID FROM T_SAL_OUTSTOCKENTRY_R C WHERE A.FID=C.FID AND C.FSRCBILLNO LIKE 'CA%')
--方法二:
UPDATE A SET A.FCOSTAMOUNT=0,A.FCOSTPRICE=0
FROM T_SAL_OUTSTOCKENTRY_F A
WHERE EXISTS(SELECT B.FID 
            FROM T_SAL_OUTSTOCKENTRY_R B 
            WHERE A.FID=B.FID AND B.FSRCBILLNO LIKE 'CA%'
                 AND EXISTS(SELECT C.FID 
                            FROM T_SAL_OUTSTOCK C 
                            WHERE C.FID=B.FID 
                                AND CONVERT(VARCHAR(10),C.FDATE,120)>='2018-07-01'
                 )
            ) AND ISNULL(A.FCOSTAMOUNT,0)<>0 

 

转载于:https://www.cnblogs.com/lxh168/p/9598776.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值