select c.OrderID,cp.MemberNo,sum(isnull(cp.PaymentPrice,0)) PaymentPrice,cp.CurrencyCode,SupplierSettlement from Client_Orders c
left join dbo.CP_Records cp on c.OrderID=cp.OrderID
left join Purchase_Orders p on c.OrderID=p.OrderID and p.IFAvailable=0
where c.OrderStates='8' and SupplierSettlement=1 and (Type=2 or Type=4)
group by c.OrderID,cp.MemberNo,cp.CurrencyCode,SupplierSettlement
having sum(isnull(cp.PaymentPrice,0))<0
union
select c.OrderID,cp.MemberNo,sum(isnull(cp.PaymentPrice,0)) PaymentPrice,cp.CurrencyCode,SupplierSettlement from Client_Orders c
left join dbo.CP_Records cp on c.OrderID=cp.OrderID
left join dbo.Purchase_Orders p on c.OrderID=p.OrderID and p.IFAvailable=0
where (Type=2 or Type=4) and SupplierSettlement=1
group by c.OrderID,Reserve,ResAdditional,cp.MemberNo,cp.CurrencyCode,SupplierSettlement
having (sum(isnull(cp.PaymentPrice,0)*-1)-(Reserve+ResAdditional))>0
left join dbo.CP_Records cp on c.OrderID=cp.OrderID
left join Purchase_Orders p on c.OrderID=p.OrderID and p.IFAvailable=0
where c.OrderStates='8' and SupplierSettlement=1 and (Type=2 or Type=4)
group by c.OrderID,cp.MemberNo,cp.CurrencyCode,SupplierSettlement
having sum(isnull(cp.PaymentPrice,0))<0
union
select c.OrderID,cp.MemberNo,sum(isnull(cp.PaymentPrice,0)) PaymentPrice,cp.CurrencyCode,SupplierSettlement from Client_Orders c
left join dbo.CP_Records cp on c.OrderID=cp.OrderID
left join dbo.Purchase_Orders p on c.OrderID=p.OrderID and p.IFAvailable=0
where (Type=2 or Type=4) and SupplierSettlement=1
group by c.OrderID,Reserve,ResAdditional,cp.MemberNo,cp.CurrencyCode,SupplierSettlement
having (sum(isnull(cp.PaymentPrice,0)*-1)-(Reserve+ResAdditional))>0
WITH AS短语 试试
2:查看执行计划