sql在一张表中存在,不在另外2张表

 

 

-----在一张表中存在,不在另外2张表写法:
select  
ISNULL(SUM(Amt),0)
from A s
WHERE   s.CreateTime BETWEEN @from and @to
AND s.TradeNo NOT IN ( 
  select  FlowNo from B1 WHERE FlowNo IS NOT null
  UNION  
  SELECT FlowNo  from B2   WHERE FlowNo IS NOT null
 
)

优化后:
select  
ISNULL(SUM(Amt),0)
from A s
WHERE  s.CreateTime BETWEEN @from and @to
AND NOT EXISTS(
SELECT 1  from B1  WHERE FlowNo IS NOT NULL AND  TradeNo=FlowNo) 
AND NOT EXISTS(
SELECT 1  from B2 WHERE FlowNo IS NOT NULL AND  TradeNo=FlowNo)
 

  

posted @ 2020-10-03 23:00  *人丑就该多读书*  阅读(282)  评论(0编辑  收藏  举报