我需要做排名,如果值是负数,然后按Asc排序,如果是正数,然后按Desc排序
select
Itemcode,
isnull(sum(ss.DiscQty * ss.Cost),0) DescCost,
RANK()OVER(Partition by Itemcode order by
case when isnull(sum(ss.DiscQty * ss.Cost),0) < 0 THEN isnull(sum(ss.DiscrepancyQty * ss.Cost),0) END ASC,
case when isnull(sum(ss.DiscQty * ss.Cost),0) > 0 THEN isnull(sum(ss.DiscQty * ss.Cost),0) END DESC
) RANKS
from
ss
Group by
ItemNo
期望结果
ItemCode DiscQty Rank
===========================
111 -5000 1
121 -4500 2
222 10000 3
223 3000 4
但我得到的排名都是1,
我只想整理一下
DiscQty
在里面
Asc
什么时候?
DiscQty < 0
和
在里面
Desc Order
当`DiscQty>0