我要查料号为A的BOM成本结构表用上述代码怎么写
时间: 2024-02-29 10:52:45 浏览: 20
好的,如果您要查询料号为 A 的 BOM 成本结构表,可以将上面的 SQL 语句中的表名 `bmb_file` 替换为您的表名,然后在最后加上一个 `WHERE` 子句来限定条件,如下所示:
```
WITH cte(bmb01, bmb03, cost) AS (
SELECT bmb01, bmb03, bmb53
FROM your_table_name
WHERE bmb01 = 'A' -- 指定主件料号为 A
UNION ALL
SELECT b.bmb01, b.bmb03, c.cost + b.bmb53
FROM your_table_name b
JOIN cte c ON b.bmb01 = c.bmb03
)
SELECT bmb01, bmb03, cost
FROM cte
WHERE bmb01 IS NOT NULL; -- 查询所有元件料号和对应的成本
```
这个 SQL 语句与之前的语句类似,只是在第一部分中增加了一个 `WHERE` 子句来限定主件料号为 A,然后在最后的查询中包括了元件料号和对应的成本。如果您只需要查询元件料号和对应的成本,可以去掉 `SELECT` 子句中的 `bmb01` 字段。
相关问题
用这个查询成品A的BOM成本结构
好的,假设成品A的料号为'1',你可以将上面的SQL查询中的'bmb03'改为'bmb01',并在最后加上一个条件限制成品的料号为'1',如下所示:
```sql
WITH RECURSIVE bom_tree AS (
-- 先将成品加入递归表达式
SELECT bmb01, bmb03, bmb53
FROM bmb_file
WHERE bmb01 = '1'
UNION ALL
-- 递归查询元件
SELECT b.bmb01, b.bmb03, b.bmb53
FROM bom_tree t
JOIN bmb_file b ON t.bmb03 = b.bmb01
)
-- 计算成品A的BOM成本结构
SELECT bmb03, SUM(bmb53) AS cost
FROM bom_tree
WHERE bmb01 = '1'
GROUP BY bmb03
ORDER BY bmb03
```
这个SQL查询会计算成品A的BOM成本结构,查询结果将会列出成品A的所有元件,以及它们的成本价之和。
金蝶 sql语句 bom成本查询
金蝶软件提供了强大的 SQL 语句查询功能,可以轻松地查询 BOM(Bill of Material)成本数据。首先,需要使用 SELECT 语句选择需要查询的字段,例如:
SELECT ItemCode, ItemName, Cost FROM BOM
这个语句会查询 BOM 表中的物料编码、物料名称和成本三个字段。下一步是使用 JOIN 连接其他表,例如 MATERIAL 和 INVENTORY,来获取更多的信息和计算成本。例如:
SELECT BOM.ItemCode, BOM.ItemName, BOM.Cost, MATERIAL.Cost as MaterialCost, INVENTORY.Cost as InventoryCost,
(BOM.Cost + MATERIAL.Cost + INVENTORY.Cost) as TotalCost
FROM BOM
JOIN MATERIAL ON BOM.MaterialCode = MATERIAL.MaterialCode
JOIN INVENTORY ON BOM.ItemCode = INVENTORY.ItemCode
这个语句查询了 BOM 表、MATERIAL 表和 INVENTORY 表,连接了它们的物料编码字段,然后计算了总成本。这个语句还选择了 MATERIAL 和 INVENTORY 表中的成本字段,分别命名为 MaterialCost 和 InventoryCost,来计算 BOM 表中的总成本。
金蝶 SQL 语句查询功能的优点是灵活和高效,可以根据具体需求来编写不同的查询语句。例如,可以根据不同的条件来筛选和计算数据,让用户更方便地获取所需的信息。