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)
 

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章