如何通过SQL实现库存月度期末结存预聚合表构建?
需求说明
我们公司ERP系统有一张库存异动表raw.InventoryTable,计算特定日期X的库存结存时,需汇总该日期及之前所有的Quantity值。表结构包含Date(格式为DDMMYYYY)、Quantity、Item、Value字段。
例如查询2023年1月末的库存结存,SQL语句如下:
select sum(i.quantity) as [On Hand] , sum(i.Value) as [Inventory Value] , i.Item from raw.InventoryTable i where Date <= '2022-01-31' group by i.item
现需构建一张月度期末聚合表int.agg_Inventory_by_month,存储本年度各月末的物料结存数量(AggQuantity)和库存价值(AggValue),以便报表端无需重复聚合即可进行时间智能计算。要求仅通过SQL(或SQL+Jinja via dbt)实现转换逻辑,禁止使用Python循环处理。
预期输出表结构及数据如下:
| Date | AggQuantity | Item | AggValue |
|---|---|---|---|
| 31/01/2023 | 5 | WidgetA | 1 |
| 31/01/2023 | 5 | WidgetB | 5 |
| 31/02/2023 | 5 | WidgetA | 1 |
| 31/02/2023 | 1 | WidgetB | 5 |
内容的提问来源于stack exchange,提问作者Edward
相关产品推荐
相关产品推荐

