Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 第二列中的运行总计-跟进_Oracle - Fatal编程技术网

Oracle 第二列中的运行总计-跟进

Oracle 第二列中的运行总计-跟进,oracle,Oracle,这是我上一篇文章的后续文章 我现在拥有的数据集是这样的 PART_NO ORDER_NO OPERATION_NO LOT_SIZE REPORTED_QTY QTY_BALANCE 305002 10374 10 3000 2417 305002 10374 11 3000 2417 305002 10374 12

这是我上一篇文章的后续文章

我现在拥有的数据集是这样的

PART_NO  ORDER_NO   OPERATION_NO LOT_SIZE   REPORTED_QTY    QTY_BALANCE
305002   10374      10           3000       2417            
305002   10374      11           3000       2417            
305002   10374      12           3000       2417            
305002   10374      13           3000       2417            
305002   10374      14           3000       2417            
305002   10374      15           3000       2417            
305002   9145       10           2000       1950            
305002   9145       20           2000       1949            
305002   9145       30           2000       1949            
305002   9145       40           2000       1949            
305002   9145       50           2000       1949            
305002   9145       60           2000       1949            
当我使用滞后函数时,我得到如下结果

PART_NO  ORDER_NO   OPERATION_NO LOT_SIZE   REPORTED_QTY    QTY_BALANCE
305002   10374      10           3000       2417            583
305002   10374      11           3000       2417            0
305002   10374      12           3000       2417            0
305002   10374      13           3000       2417            0
305002   10374      14           3000       2417            0
305002   10374      15           3000       2417            0
305002   9145       10           2000       1950            467
305002   9145       20           2000       1949            1
305002   9145       30           2000       1949            0
305002   9145       40           2000       1949            0
305002   9145       50           2000       1949            0
305002   9145       60           2000       1949            0
问题是,当订单号改变时,我需要从头开始对该订单号进行滞后评估

PART_NO  ORDER_NO   OPERATION_NO LOT_SIZE   REPORTED_QTY    QTY_BALANCE
305002   10374      10           3000       2417            583
305002   10374      11           3000       2417            0
305002   10374      12           3000       2417            0
305002   10374      13           3000       2417            0
305002   10374      14           3000       2417            0
305002   10374      15           3000       2417            0
305002   9145       10           2000       1950            50
305002   9145       20           2000       1949            1
305002   9145       30           2000       1949            0
305002   9145       40           2000       1949            0
305002   9145       50           2000       1949            0
305002   9145       60           2000       1949            0

我似乎绕不开这件事。如何使滞后函数理解,只要顺序没有改变,它就需要重置

OVER
声明中使用
partitionbyorder\u no
子句:

SELECT PART_NO, ORDER_NO, OPERATION_NO, Lot_Size,
       Reported_QTY,
       COALESCE( LAG( Reported_QTY ) OVER (PARTITION BY ORDER_NO ORDER BY null )
                - Reported_QTY, Lot_Size - Reported_QTY ) AS Qty_Balance
FROM   Lots
ORDER BY ORDER_NO DESC, OPERATION_NO
演示: