SELECT SUM(DISTINCT CASE WHEN BG_BG_Type =2 THEN ISNULL(b.BG_Freight,0.00)-ISNULL(a.BG_Freight,0.00) WHEN BG_BG_Type=3 THEN ISNULL(BG_DCharge,0.00) ELSE 0 END) FROM BA_Bargain a LEFT JOIN BG_Bargain b ON a.BGID=b.BGID AND a.BG_OP_Time>='2010-09-26' AND a.BG_OP_Time<'2010-10-26' AND b.BG_TNode='100625' AND (BG_BG_Type=2 or BG_BG_Type=3)
现在执行的效果是:((10+30+40)-(15+30+40))+((20+6+1)-(5+6+1))
我想要原始运费为第一次的,原始送货费为第二次的,也就是说原始运费是第一次修改的,送货费是最后一次修改的记录?DISTINCT是不是只能去第一次的BA_Bargain(变更原始表)
  BGID , BG_Freight (变更前的运费) ,BG_DCharge(原始送货费), BG_OP_Time
  001 , 10 ,20,2010-09-26 01:00:00 (第一次)
  001 , 11 ,10,2010-09-26 01:59:59 ( 第二次,然而没有变化)
  002 , 30 ,6,2010-09-26 02:33:00
  003 , 40 ,1,2010-09-26 03:00:00
BG_Bargain(变更后表)
  BGID , BG_Freight(变更后的运费),BG_DCharge
  001 , 15,5
  002 , 30,6
  003 , 40,1