㈠ 如何用一个 sql 来查 BOM
select bomchild.fitemid,bomchild.YFfqy,bomchild.Fqty(我不知道这个值是怎么计算的,所以只能这么写在这里) from bom,bomchild where bom.bomid=bomchild.bomid and bom.fitemid <> bomchild.fitemid
如果FitemId=001是你输入的,那么就在后面加上一个 and bom.fitemid='001' 应该就行了。
如果不加那么得到的就应该是表2,去掉and bom.fitemid <> bomchild.fitemid 应该就是表1了。
㈡ 新人求教sql循环查询BOM
你这个是交展BOM,也就是树状图方式展现层级。
一般可以用 CONNECT BY 这个函数。
如果数据库量大,则建议自己写一个存储过程了。
㈢ 如何通过sql代码根据销售订单数量计算出某个物料在某个半成品零件中的用量。
CREATETABLE#TestBom(
[产品]char(1),
[原料]char(1),
[数量]int
);
--假设1个X需要1个A,2个B,3个C来生产出来。
INSERTINTO#TestBom
SELECT'X','A',1UNIONALL
SELECT'X','B',2UNIONALL
SELECT'X','C',3;
--假设生产1个A需要消耗10个Z
--生产1个B需要消耗5个Z
--生产1个C需要消耗2个Z
INSERTINTO#TestBom
SELECT'A','Z',10UNIONALL
SELECT'B','Z',5UNIONALL
SELECT'C','Z',2;
CREATETABLE#TestOrder(
[订单商品]char(1),
[订单数量]int
);
INSERTINTO#TestOrderVALUES('X',100);
GO--查询订单需要多少个ABC
SELECT
o.*,
b.[原料],
b.[数量]*o.[订单数量]AS[总消耗数量]
FROM
#TestOrderoJOIN#TestBomb
ON(o.[订单商品]=b.[产品])
GO
订单商品订单数量原料总消耗数量
----------------------------
X100A100
X100B200
X100C300
(3行受影响)
--Z在A零件中的需求用量
SELECT
o.*,
b.[原料],
b.[数量]*o.[订单数量]AS[总消耗数量],
b2.[原料]AS[底层原料],
b2.[数量]*b.[数量]*o.[订单数量]AS[底层原料总消耗数量]
FROM
#TestOrderoJOIN#TestBomb
ON(o.[订单商品]=b.[产品])
JOIN#TestBomb2
ON(b.[原料]=b2.[产品])
WHERE
b.[原料]='A'
ANDb2.[原料]='Z'
GO
订单商品订单数量原料总消耗数量底层原料底层原料总消耗数量
-------------------------------------------
X100A100Z1000
(1行受影响)
㈣ SQL中多阶BOM依次展开及按级次顺序显示问题
可以用结果一
㈤ 求一条SQL语句
selec a.cpmc as '产品名称', b.ylmc as ‘所用原料’, a.cpcl*b.yl as '产品产量' join (
select bommx.ylmc, bommx.bomid,sum(bommx.yl) yl, bom.cpdm
bom join bommx on bom.bomid=bommx.bomid group by bommx.ylmc, bommx.bomid,bom.cpdm
) b on a.cpdm=b.cpdm