为什么bmb_file变成ima了,你哪里抄来的代码
时间: 2024-02-29 21:52:15 浏览: 59
prime_service_modem.sam4cp16bmb_primemodem_
非常抱歉,是我的疏忽造成了混淆。我是在之前的回答中将 `bmb_file` 误写成了 `ima_file`。实际上,这两个表是不同的表,`bmb_file` 存储了物料的BOM结构,而 `ima_file` 存储了物料的基本信息和成本等数据。
以下是使用 `bmb_file` 表完成上述任务的SQL查询:
```sql
WITH bom_tree(bmb01, bmb03, bmb53) AS (
-- 先将成品加入递归表达式
SELECT bmb01, bmb03, bmb53
FROM bmb_file
WHERE bmb01 = '1'
UNION ALL
-- 递归查询元件
SELECT b.bmb01, b.bmb03, SUM(b.bmb53 * t.bmb53) AS cost
FROM bom_tree t
JOIN bmb_file b ON t.bmb03 = b.bmb01
WHERE b.bmb04 = '1' -- 只查询原材料
GROUP BY b.bmb01, b.bmb03
)
-- 最终查询结果
SELECT bmb03, SUM(bmb53) AS cost
FROM bom_tree
WHERE bmb01 IS NULL
GROUP BY bmb03;
```
这个SQL查询和之前的查询类似,只是使用了 `bmb_file` 表来查询BOM结构和元件的成本价,而不是使用 `ima_file` 表。在递归查询元件时,加入了一个条件限制只查询原材料,并且将每个原材料的成本价乘以其在BOM中的数量(bmb53),然后将它们相加得到半成品和成品的成本价。最后,查询结果包含元件的料号和成本价。
阅读全文