You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术请求:将InventoryItem表转换为区分在手与待持库存的视图

实现库存分组统计视图的SQL方案

原表数据(InventoryItem表)

Inventory IDWarehouseWarehouse LocationQty
11017NashvilleDock10
11017NashvilleHold5
11017NashvilleA113
11017New YorkHold20
11119ChicagoHold5
11119New YorkC346
11119New YorkHold20

目标视图需求

按Inventory ID和Warehouse分组,分别统计两类库存数量:

  • 在手库存:Warehouse Location不等于Hold的数量总和
  • 待持库存:Warehouse Location等于Hold的数量总和
    无对应数据时显示0,最终结果如下:
Inventory IDWarehouseQty on Hand(Not Equal to Hold)Qty on Hold(Equal to hold)
11017Nashville235
11017New York020
11119Chicago05
11119New York620

解决方案:条件聚合SQL语句

使用GROUP BY结合SUM(CASE...)的条件聚合方式,兼容MySQL、SQL Server、PostgreSQL等多数关系型数据库:

CREATE VIEW InventorySummary AS
SELECT
    `Inventory ID`,
    Warehouse,
    SUM(CASE WHEN `Warehouse Location` != 'Hold' THEN Qty ELSE 0 END) AS `Qty on Hand(Not Equal to Hold)`,
    SUM(CASE WHEN `Warehouse Location` = 'Hold' THEN Qty ELSE 0 END) AS `Qty on Hold(Equal to hold)`
FROM InventoryItem
GROUP BY `Inventory ID`, Warehouse;

逻辑说明

  1. 分组规则:按Inventory ID和Warehouse分组,保证每个库存ID在对应仓库的统计独立
  2. 条件求和:
    • 在手库存:通过CASE判断货位非Hold时取对应数量,否则取0,再求和
    • 待持库存:判断货位为Hold时取对应数量,否则取0,再求和
  3. 视图创建:用CREATE VIEW将查询结果保存为视图,方便后续直接调用

内容的提问来源于stack exchange,提问作者Es12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 22:03:12