曾解决的问题现出现新问题,请marco08和mengmou及各位好手再帮看看
如下问题在
http://community.csdn.net/Expert/topic/5404/5404149.xml?temp=.3727991
得到mengmou和marco08的帮助本已解决,但现在出新情况,
就是MaInfo表会出现两个相同的记录时要把它们的值累加(如可口可乐),一旦出现这种情况目前的计算已不准确,小弟材疏,请大家再指点
--创建测试环境,假设下列表中的数据都已经按照公司、产品汇总,即公司、产品是主键。
create table Info(Code int,IncDes varchar(10))
create table MaInfo(Code int,Barcode varchar(10),MaterialsCn varchar(10),number int)
create table SaleDetail(Code int,Barcode varchar(10),MaterialsCn varchar(10),sellnum1 int)
create table SaleOrder(Code int,Barcode varchar(10),MaterialsCn varchar(10),sellnum2 int)
--插入测试数据
insert Info(Code,IncDes)
select '1009 ', '天染公司 ' union all
select '1005 ', '海丰公司 ' union all
select '1023 ', '采诗公司 '
insert MaInfo(Code,Barcode,MaterialsCn,number)
select '1009 ', '1111111 ', '可口可乐 ', '10 ' union all
select '1009 ', '1111111 ', '可口可乐 ', '10 ' union all
select '1009 ', '1111112 ', '芬达可乐 ', '12 ' union all
select '1009 ', '1111113 ', '花生果 ', '15 ' union all
select '1005 ', '1111112 ', '芬达可乐 ', '20 ' union all
select '1005 ', '1111114 ', '出前一丁 ', '30 ' union all
select '1023 ', '1111112 ', '芬达可乐 ', '22 ' union all
select '1005 ', '1111113 ', '花生果 ', '40 '
insert SaleDetail(Code,Barcode,MaterialsCn,sellnum1)
select '1009 ', '1111111 ', '可口可乐 ', '2 ' union all
select '1005 ', '1111114 ', '出前一丁 ', '3 ' union all
select '1023 ', '1111112 ', '芬达可乐 ', '1 '
insert SaleOrder(Code,Barcode,MaterialsCn,sellnum2)
select '1009 ', '1111111 ', '可口可乐 ', '2 ' union all
select '1023 ', '1111112 ', '芬达可乐 ', '1 '
--求解过程
declare @ztdm varchar(20)
set @ztdm = ' ' '1005 ' ', ' '1009 ' ' '
exec( '
declare @sql varchar(8000)
select @sql = ' 'select barcode,MaterialsCn ' '
select @sql = @sql + ' ',sum(case when IncDes = ' ' ' ' ' ' + IncDes
+ ' ' ' ' ' ' then sellnum else 0 end) as ' ' + IncDes + ' '销量 ' '
+ ' ',sum(case when IncDes = ' ' ' ' ' ' + IncDes
+ ' ' ' ' ' ' then numbe