多版本BOM成本计算 MSSQL2000版本
SELECT BILLID,GOODSID,QTY,BOMVER,BOMVERNAME,IBILLID,IITEMNO FROM M_BOM ---BOM主表
单据ID号,货品ID,数量,版本号,版本名,? , ?
BILLID,GOODSID,QTY,BOMVER,BOMVERNAME,IBILLID,IITEMNO
86 87 1.0 A A NULL NULL ---版本A
87 90 1.0 D D 86 3
88 92 1.0 F F 87 2
161 87 1.0 A2 A2 NULL NULL ---版本A2
163 92 1.0 F2 F2 NULL NULL
164 90 1.0 D2 D2 NULL NULL
SELECT BILLID,ITEMNO,GOODSID,QTY,BOMID FROM M_BOMD ---BOM从表
单据ID,序号, 货品ID,数量,对应版本ID号,单价
BILLID,ITEMNO,GOODSID, QTY, BOMID PRICE
86 1 88 1.0 NULL , 1
86 2 89 1.0 NULL , 1
86 3 90 1.0 87 , 0
87 1 91 1.0 NULL , 1
87 2 92 1.0 88 , 0
88 1 93 2.0 NULL , 1
161 1 88 1.0 NULL , 1
161 2 89 1.0 NULL , 1
161 3 90 2.0 164 , 0
163 1 93 4.0 NULL , 1
164 1 91 1.0 NULL , 1
164 2 92 1.0 163 , 0
164 3 95 1.0 NULL , 2说明: M_BOM.BILLID=M_BOMD.BILLID 时表示母件与子件的关系
如BILLID=86时 (货品ID87 由货品88、89、90组成)M_BOMD细表BILLID=86,BOMID=87表示该货品有下级清单并且BILLID是87,
同理细表BOMID=163
如此循环下去的。货品87版本号A由88、89、90组成;货品90由91、92组成;货品92由2个93组成。货品87版本号A2由88、89、2个90组成;货品90由91、92、95组成;货品92由4个93组成。
要求通过函数分别计算出货品87版本号A和A2的成本单价(由最下层开始往上推算)
BILLID , MGOODSID , MQTY BOMVER , BOMVERNAME , DGOODSID , DQTY , DRPICE , DAMT
86 , 87 , 1.0 , A , A , 88 , 1 , ? , ?
86 , 87 , 1.0 , A , A , 89 , 1 , ? , ?
86 , 87 , 1.0 , A , A , 90 , 1 , ? , ?
SELECT BILLID,GOODSID,QTY,BOMVER,BOMVERNAME,IBILLID,IITEMNO FROM M_BOM ---BOM主表
单据ID号,货品ID,数量,版本号,版本名,? , ?
BILLID,GOODSID,QTY,BOMVER,BOMVERNAME,IBILLID,IITEMNO
86 87 1.0 A A NULL NULL ---版本A
87 90 1.0 D D 86 3
88 92 1.0 F F 87 2
161 87 1.0 A2 A2 NULL NULL ---版本A2
163 92 1.0 F2 F2 NULL NULL
164 90 1.0 D2 D2 NULL NULL
SELECT BILLID,ITEMNO,GOODSID,QTY,BOMID FROM M_BOMD ---BOM从表
单据ID,序号, 货品ID,数量,对应版本ID号,单价
BILLID,ITEMNO,GOODSID, QTY, BOMID PRICE
86 1 88 1.0 NULL , 1
86 2 89 1.0 NULL , 1
86 3 90 1.0 87 , 0
87 1 91 1.0 NULL , 1
87 2 92 1.0 88 , 0
88 1 93 2.0 NULL , 1
161 1 88 1.0 NULL , 1
161 2 89 1.0 NULL , 1
161 3 90 2.0 164 , 0
163 1 93 4.0 NULL , 1
164 1 91 1.0 NULL , 1
164 2 92 1.0 163 , 0
164 3 95 1.0 NULL , 2说明: M_BOM.BILLID=M_BOMD.BILLID 时表示母件与子件的关系
如BILLID=86时 (货品ID87 由货品88、89、90组成)M_BOMD细表BILLID=86,BOMID=87表示该货品有下级清单并且BILLID是87,
同理细表BOMID=163
如此循环下去的。货品87版本号A由88、89、90组成;货品90由91、92组成;货品92由2个93组成。货品87版本号A2由88、89、2个90组成;货品90由91、92、95组成;货品92由4个93组成。
要求通过函数分别计算出货品87版本号A和A2的成本单价(由最下层开始往上推算)
BILLID , MGOODSID , MQTY BOMVER , BOMVERNAME , DGOODSID , DQTY , DRPICE , DAMT
86 , 87 , 1.0 , A , A , 88 , 1 , ? , ?
86 , 87 , 1.0 , A , A , 89 , 1 , ? , ?
86 , 87 , 1.0 , A , A , 90 , 1 , ? , ?
解决方案 »
- 关于企业管理器的问题
- 这个查询怎么写
- 关于查询结果的汇总
- 刚才那个问题,怎么取得指定字符‘/’前面的字符串。
- 各位大虾帮我看看这个数据类型的转换问题
- 根据前一查询结果,在第二个查询查找数据,两个查询怎样写成一个查询,我写了一个反回一个[子查询返回的值多于一个]的错误码
- 一个对于高手简单的语句,希望能帮帮我,谢谢
- 求一查询语名写法
- 用户有8万人,每天会使用一次,要保存5年数据,谁知道如何选择服务器,用sql server2005能否处理
- 多个客户端,同时读取一个表里的数据,select top 100 * from table,怎样防止客户端读出的数据重复?? sql server数据库
- 关于SQL Server 2005 sp3补丁
- 下面这个两张表关联查询的SQL怎么写?
这个贴,现在需求是多版本的(就是主产品有多个配方的),谢谢!!