left join 优化

原来的:

SELECT
 M.clientid, 
 M.CardFaceID, 
 N.NormalBanalce, 
 D.DateWorth, 
 T.TimesWorth, 
 B.BookingWorth,
 B.BookingTimesManyBalance
FROM  
    ( 
 SELECT
  clientid,CardFaceID
 FROM 
  cimain 
    ) M 
 
 Left Join
  (SELECT 
   clientid,
   sum( case when IfGive='是' then Balance * ItemZkl else Balance end) as NormalBanalce  
  FROM ccNormal   
  Group By  clientid  ) N on M.clientid=N.clientid 


 Left Join          
  (SELECT 
   clientid,
   sum(   ConsumeBalance * ItemZkl  )  as DateWorth
  FROM ccDate    
  Group By  clientid  ) D on M.clientid=D.clientid 

 Left Join
  (SELECT 
   clientid,
   sum(   AveragePrice * TimesBalance * ItemZKL   )  as TimesWorth      
  FROM ccTimes   
  Group By  clientid  ) T on M.clientid=T.clientid 

 Left Join
  (SELECT 
   clientid,
   sum(   PriceDiscount * TimesBalance   )  as BookingWorth,
   sum(TimesBalance) as BookingTimesManyBalance         
  FROM ccBooking   
  Group By  clientid  ) B on M.clientid=B.clientid

优化后:

SELECT
    M.clientid  , 
    M.CardFaceID, 
    (SELECT sum(case IfGive when '是' then Balance*ItemZkl else Balance end) FROM ccNormal WHERE clientid=M.clientid) AS NormalBanalce,
    (SELECT sum(ConsumeBalance*ItemZkl) FROM ccDate WHERE clientid=M.clientid) AS DateWorth, 
    (SELECT sum(AveragePrice*TimesBalance*ItemZKL) FROM ccTimes WHERE clientid=M.clientid) AS TimesWorth, 
    (SELECT sum(PriceDiscount*TimesBalance) FROM ccBooking WHERE clientid=M.clientid) AS BookingWorth,
    (SELECT sum(TimesBalance) FROM ccBooking WHERE clientid=M.clientid) AS BookingTimesManyBalance
FROM  
    cimain M

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值