如何在dense_rank中进行嵌套排序

时间:2014-04-22 05:52:39

标签: sql oracle sorting

我使用密集排名将表格中的项目分组为3天。例如:4月22日至24日将紧张起来'一起并将优先级指定为4。

enter image description here 问题:

  1. 我需要根据QTYORDERED对Planning_package进行进一步排序。优先级4的最终结果如下。 enter image description here
  2. 我用来执行排序的sql如下所示。任何人都可以帮助进一步排序planning_package ??? **

    select SALESORDERID, ITEM, PLANNING_PACKAGE, GENERIC_PACKAGE, QTYORDERED,
    DMD_TYPE_CD, ORDER_TYPE_CD, PRIORITY_NBR,PROMISEDAVAILDATE,
    dense_rank()
    over
    (
    order by
        round((
                case when dmd_type_cd = 'Netted Forecast'
                     then greatest(PROMISEDAVAILDATE, (to_date('22-Apr-14','DD-Mon-YY')+31)) 
                     else PROMISEDAVAILDATE end
                - (to_date('22-Apr-14','DD-Mon-YY')+1)) / 3, 0) desc
    ) as priority
    
    from
    TEST_SALESORDER_TABLE;
    

1 个答案:

答案 0 :(得分:0)

您可以指定多个列来按order by clause排序 - 在您的情况下,它将是.... order by priority , qtyordered desc

如果priority是表达式,您也可以按列位置排序。