看不懂你排序的逻辑,这个LN_ID根据什么原则来的?

解决方案 »

  1.   

    declare
    cursor nrow is select INV_ID,INV_POS_ID,AMOUNT from t6 order by INV_ID;
    crow t6%ROWTYPE;

    i number;
    top number;
    begin
    top:=1;
    i:=0;
    open nrow;
    fetch nrow into crow;
    while nrow%FOUND loop
    if i>top then
    top:=top+1;
    i:=0;
    end if;
    i:=i+1;
    DBMS_OUTPUT.PUT_LINE(i||' '||crow.INV_ID||' '||crow.INV_POS_ID||' '||crow.AMOUNT);
    fetch nrow into crow;
    end loop;
    close nrow;
    end;
    --可以的话就给分哈。
      

  2.   

    感谢楼上二位大力相助to: KingSunSha(弱水三千) 
    这个LN_ID是根据后面的INV_ID作为分组获取的to:zhangtenyu(wl)
    多谢大虾如此辛苦
    问题已经解决可以通过ROW_NUMBER() OVER()来实现这个功能实现的脚本如下SELECT ROW_NUMBER() OVER(PARTITION BY INV_ID ORDER BY INV_POS_ID) AS LN_ID,INV_ID,INV_POS_ID,AMOUNT
    FROM TEST2—————————————————————————————————
    该死的CSDN,把旧帖子都TMD删了,气死我了!!!