日期:2014-05-18  浏览次数:20407 次

ERP产品组套问题
ERP中组套的问题

表一:zutaotbl
dalei xiaolei
1 11
1 12
1 13

2 12
2 13

3 11
3 12
3 14

表二:shuliangtbl
cinvcode iquantity
11 100
12 200
13 200
14 200

怎么写一个查询语句,对产品1,2,3按顺序进行组套,即先组套产品1,再组套2,最后剩下的小类产品组套产品3。最终结果为:
产品 数量
1 100
2 100
3 0

小类 数量
11 0
12 0
13 0
14 200
请高手赐教。

------解决方案--------------------
SQL code
--原始数据:@1
declare @1 table(dalei int,xiaolei int)
insert @1
select 1,11 union all
select 1,12 union all
select 1,13 union all
select 2,12 union all
select 2,13 union all
select 3,11 union all
select 3,12 union all
select 3,14
--原始数据:@2
declare @2 table(cinvcode int,iquantity int)
insert @2
select 11,100 union all
select 12,200 union all
select 13,200 union all
select 14,200

select *,cn=cast(null as int) into #T from @1

declare @dalei int

declare cur_dalei cursor for select dalei from #T group by dalei
open cur_dalei
fetch next from cur_dalei into @dalei
while @@fetch_status=0
begin
    update #T set cn=(select min(b.iquantity) from #T a,@2 b where a.dalei=@dalei and a.xiaolei=b.最大的值所在行的数据