想知道在SQL Server中执行Excel的SUMPRODUCT有哪些选项。
我有3张桌子:
- 正在出售的项目的交易列表
- 构成每个项目的原材料
- 截至日期的原材料价格
对于每一个售出的项目(表1),我想找到该售出日期的原材料总价(表3),考虑到构成该项目的原材料的百分比。下面是示例数据。
表1:售出物品
| Item | Date | Qty_sold | 
|---|---|---|
| Pencil | 5/1/2022 | 1 | 
| Pencil | 6/1/2022 | 2 | 
| Pencil | 9/1/2022 | 1 | 
表2:构成每个项目的原材料
| Item | Raw_material | pct_of_total | 
|---|---|---|
| Pencil | Wood | 70% | 
| Pencil | Rubber | 5% | 
| Pencil | Lead | 25% | 
表3:按日期分列的原材料价格
| Date | Raw_material | Part_unitprice | 
|---|---|---|
| 5/1/2022 | Wood | 0.20 | 
| 6/1/2022 | Wood | 0.21 | 
| 9/1/2022 | Wood | 0.21 | 
| 5/1/2022 | Rubber | 0.10 | 
| 6/1/2022 | Rubber | 0.10 | 
| 9/1/2022 | Rubber | 0.12 | 
| 5/1/2022 | Lead | 0.50 | 
| 6/1/2022 | Lead | 0.55 | 
| 9/1/2022 | Lead | 0.50 | 
我要寻找的结果如下,详细程度与表1相同。
| Item | Date | Qty_sold | SUMPRODUCT_unitprice | 
|---|---|---|---|
| Pencil | 5/1/2022 | 1 | 0.27 | 
| Pencil | 6/1/2022 | 2 | 0.2895 | 
| Pencil | 9/1/2022 | 1 | 0.278 | 
我的方法是
- 第一个连接表2(约3k行)&;表3(~72k行)
- 将生成的表与表1(>;2M行)连接
我意识到这两个连接需要处理的行数,我想知道是否有一种更复杂的方法。