gpt4 book ai didi

SQL - 如何按项目单位获取最终数量?

转载 作者:搜寻专家 更新时间:2023-10-30 22:26:44 24 4
gpt4 key购买 nike

我有这样的图书库存表:

---------------------------------------------------------------------
| BOOK_ID | WAREHOUSE | UNITS | QTY_IN | QTY_OUT |
---------------------------------------------------------------------
| 1 | W01 | PCS | 5 | 0 |
---------------------------------------------------------------------
| 2 | W02 | BOX | 1 | 0 |
---------------------------------------------------------------------
| 1 | W01 | PCS | 20 | 0 |
---------------------------------------------------------------------
| 1 | W01 | BOX | 2 | 0 |
---------------------------------------------------------------------
| 1 | W01 | PCS | 0 | 2 |
---------------------------------------------------------------------

我想获得每本书的最终数量,例如:

  • BOOK_ID 1 总数量为 2 盒,23 件
  • BOOK_ID 2 的总数量是 1 BOX
  • 等等..

这是我到目前为止尝试过的:

select BOOK_ID, UNITS, WAREHOUSE, sum(QTY_IN) as QTY_IN, sum(QTY_OUT) as QTY_OUT from 
(select BOOK_ID, UNITS, WAREHOUSE, QTY_IN, QTY_OUT
from BOOK_STOCK) d
group by BOOK_ID, UNITS, WAREHOUSE

请问如何对数量进行分组求和?谢谢。

最佳答案

使用case表达式做条件聚合:

select BOOK_ID,
sum(case when units = 'BOX' then QTY_IN - QTY_OUT else 0 end) as QTY_BOX,
sum(case when units = 'PCS' then QTY_IN - QTY_OUT else 0 end) as QTY_PCS
from BOOK_STOCK
group by BOOK_ID

关于SQL - 如何按项目单位获取最终数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50228420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com