想知道在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行)连接
我意识到这两个连接需要处理的行数,我想知道是否有一种更复杂的方法。