ORACLE 查询根据 ID 消耗的数量使用 MIN 获取最后一个 ID

嗨戴夫

我有使用 Oracle 的进货股票交易数据:

ID   | DESCRIPTION | PART_NO | QUANTITY | DATEADDED
TR5  | FG          | P0025   | 5        | 06-SEP-2017 08:20:33 <-- just now added

TR4  | Test        | TEST1   | 8        | 05-SEP-2017 15:11:15
TR3  | FG          | GSDFGSG | 10       | 31-AUG-2017 16:26:04
TR2  | FG          | GSDFGSG | 2        | 31-AUG-2017 16:05:39
TR1  | FG          | GSDFGSG | 2        | 30-AUG-2017 16:30:16

现在我将该数据分组为:

TR_ID | PART_NO | TOTAL
TR1   | GSDFGSG | 14
TR4   | TEST1   | 8
TR5   | P0025   | 5 <-- just now added

查询代码:

SELECT MIN(TRANSACTION_EQUIPMENTID) as TR_ID,
PART_NO,
SUM(T.QUANTITY) AS TOTAL
FROM WA_II_TBL_TR_EQUIPMENT T
GROUP BY T.PART_NO

正如您在该数据和查询代码中看到的那样,我使用 TR_IDMIN来获取第一笔交易的第一个 ID。

现在我有传出交易数据:

假设我尝试获得数量 8

ID_FK | QUANTITY
TR1   | 8

现在我想获得最后一个 ID,因为数量 8 已被消耗

ID | DESCRIPTION | PART_NO | QUANTITY
TR3| FG          | GSDFGSG | 10  <-- CONSUMED 4+2+2, TOTAL 8
TR2| FG          | GSDFGSG | 2   <-- CONSUMED 2+2, TOTAL 4
TR1| FG          | GSDFGSG | 2   <-- CONSUMED 2

如上所示,TR1、TR2 已被消耗。现在我想要查询

SELECT MIN(TRANSACTION_EQUIPMENTID) as TR_ID,
PART_NO,
SUM(T.QUANTITY) AS TOTAL
FROM WA_II_TBL_TR_EQUIPMENT T
GROUP BY T.PART_NO

获取最后一个 id 是:TR3,由于 TR1 & TR2 已被消耗。

如何在查询中做到这一点?

思考斯蒂本斯

id在增长总和大于 8 的地方取最小值。 使用 analytic sum()

select min(id) id
  from (select t.*,               
               sum(quantity) over (partition by part_no order by id) sq
          from t
          where part_no = 'GSDFGSG' 
          ) 
  where sq >= 8 

测试数据,输出:

create table t(ID varchar2(3), DESCRIPTION varchar2(5), 
    PART_NO varchar2(8), QUANTITY number(5), DATEADDED date);

insert into t values ('TR4', 'Test', 'TEST1',    8, timestamp '2017-09-05 15:11:15');
insert into t values ('TR3', 'FG',   'GSDFGSG', 10, timestamp '2017-08-31 16:26:04');
insert into t values ('TR2', 'FG',   'GSDFGSG',  2, timestamp '2017-08-31 16:05:39');
insert into t values ('TR1', 'FG',   'GSDFGSG',  2, timestamp '2017-08-30 16:30:16');
insert into t values ('TR5', 'FG',   'GSDFGSG',  3, timestamp '2017-08-31 17:00:00');

编辑:

添加part_nototal列和group by子句:

select min(id) id, part_no, min(sq) total
  from (select t.*,               
               sum(quantity) over (partition by part_no order by id) sq
          from t
          where part_no = 'GSDFGSG' 
          ) 
  where sq >= 8 
  group by part_no


ID  PART_NO       TOTAL
--- -------- ----------
TR3 GSDFGSG          14

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用AJAX查询的最后一个ID查询?

来自分类Dev

使用medoo获取最后一个自动递增的id

来自分类Dev

如何获取使用 Dapper 输入的最后一个 ID?

来自分类Dev

获取最后一个AUTO INCREMENT-如何使用mysqli_insert_id为查询指定表?

来自分类Dev

MYSQL-通过查询从组中的最后一个ID获取值

来自分类Dev

如何通过单个查询获取SQL中的最后一个递增ID

来自分类Dev

根据一个ID查询最近的记录

来自分类Dev

如何插入 ID +1 并获取最后一个 ID?

来自分类Dev

如何使用javascript获取数组中特定ID的最后一个值?

来自分类Dev

转到:如何使用NamedExec()在Postgresql上获取最后一个插入ID

来自分类Dev

在本地使用PowerShell来获取Azure DevOps分支上的最后一个内部版本ID

来自分类Dev

Array.foreach 只使用 keyup 从最后一个输入 id 获取 val()

来自分类Dev

如何使用SQL获取任何表的最后一个ID?

来自分类Dev

最后一个ID

来自分类Dev

使用SimpleXML读取最后一个标签ID

来自分类Dev

使用PDO插入返回的最后一个ID

来自分类Dev

获取最后一个插入ID返回null

来自分类Dev

如何获取linq中的最后一个插入ID

来自分类Dev

vb.net获取并显示最后一个ID

来自分类Dev

Linq获取插入的最后一个ID

来自分类Dev

Nodjs区分如何获取最后一个插入ID

来自分类Dev

如何获取特定ID的最后一个条目

来自分类Dev

如何获取linq中的最后一个插入ID

来自分类Dev

Laravel 的背包获取最后一个 ID

来自分类Dev

Laravel:查询仅获取一个相关ID

来自分类Dev

根据另一个数据帧的“时间戳”和“id”从一个数据帧中获取最大数量

来自分类Dev

在magento中使用Zend_Db_Adapter_Pdo_Mysql在magento中获取最后一个插入ID 0

来自分类Dev

查询以从一个查询中的另一个ID获取结果

来自分类Dev

Oracle:“此会话中尚未定义序列ID_TABLE1.CURRVAL”-如何获取序列的最后一个值?

Related 相关文章

  1. 1

    如何使用AJAX查询的最后一个ID查询?

  2. 2

    使用medoo获取最后一个自动递增的id

  3. 3

    如何获取使用 Dapper 输入的最后一个 ID?

  4. 4

    获取最后一个AUTO INCREMENT-如何使用mysqli_insert_id为查询指定表?

  5. 5

    MYSQL-通过查询从组中的最后一个ID获取值

  6. 6

    如何通过单个查询获取SQL中的最后一个递增ID

  7. 7

    根据一个ID查询最近的记录

  8. 8

    如何插入 ID +1 并获取最后一个 ID?

  9. 9

    如何使用javascript获取数组中特定ID的最后一个值?

  10. 10

    转到:如何使用NamedExec()在Postgresql上获取最后一个插入ID

  11. 11

    在本地使用PowerShell来获取Azure DevOps分支上的最后一个内部版本ID

  12. 12

    Array.foreach 只使用 keyup 从最后一个输入 id 获取 val()

  13. 13

    如何使用SQL获取任何表的最后一个ID?

  14. 14

    最后一个ID

  15. 15

    使用SimpleXML读取最后一个标签ID

  16. 16

    使用PDO插入返回的最后一个ID

  17. 17

    获取最后一个插入ID返回null

  18. 18

    如何获取linq中的最后一个插入ID

  19. 19

    vb.net获取并显示最后一个ID

  20. 20

    Linq获取插入的最后一个ID

  21. 21

    Nodjs区分如何获取最后一个插入ID

  22. 22

    如何获取特定ID的最后一个条目

  23. 23

    如何获取linq中的最后一个插入ID

  24. 24

    Laravel 的背包获取最后一个 ID

  25. 25

    Laravel:查询仅获取一个相关ID

  26. 26

    根据另一个数据帧的“时间戳”和“id”从一个数据帧中获取最大数量

  27. 27

    在magento中使用Zend_Db_Adapter_Pdo_Mysql在magento中获取最后一个插入ID 0

  28. 28

    查询以从一个查询中的另一个ID获取结果

  29. 29

    Oracle:“此会话中尚未定义序列ID_TABLE1.CURRVAL”-如何获取序列的最后一个值?

热门标签

归档