半成品和成品的成本直接赋值给ima53,再优化下上述代码
时间: 2024-02-29 20:52:11 浏览: 20
好的,如果半成品和成品的成本直接赋值给ima53,则可以进一步优化之前的SQL查询,去掉计算成本价的部分,直接查询BOM中所有物料的料号和成本价。以下是优化后的SQL查询:
```sql
WITH bom_tree(ima01, ima02, ima53) AS (
-- 先将成品加入递归表达式
SELECT ima01, ima02, ima53
FROM ima_file
WHERE ima01 = 'A'
UNION ALL
-- 递归查询元件
SELECT i.ima01, i.ima02, i.ima53
FROM bom_tree t
JOIN bmb_file b ON t.ima01 = b.bmb01
JOIN ima_file i ON b.bmb03 = i.ima01
)
-- 最终查询结果
SELECT ima01, ima02, ima53
FROM bom_tree;
```
这个SQL查询仍然使用了递归公共表达式(WITH clause)来完成递归查询,先将成品加入递归表达式,然后递归查询元件,查询结果只包含物料的料号和成本价。请注意,这个SQL查询中的ima01 = 'A' 表示查询成品A的BOM,你可以根据实际情况修改成品的料号。