【发布时间】:2018-09-13 06:40:48
【问题描述】:
我需要做Ranking,如果值为负数,则按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
【问题讨论】:
-
具有预期结果的样本数据将有所帮助
-
“它不起作用”是不是一个好的描述。如果您得到意想不到的结果,请解释您所期望的结果以及不匹配的原因。如果您收到 错误消息(我的预期),请告诉我们错误消息的内容。
-
查询中缺少 ST_ItemEntry 表。请提供所有与范围相关的信息。
标签: sql sql-server stored-procedures ranking rank