交叉表问题
类似于:
表1:
名称 重量 价格
a 1 1
b 1 1
表2:
名称 配件 数量
a A 1
a B 2
b A 1
b B 2
要用表格控件显示和打印出如下效果:
配件
名称 重量 价格 A B
a 1 1 1 2
b 1 1 1 2
[解决办法]
declare @sql varchar(8000)
set @sql = 'select a.名称,a.重量,a.价格, '
select @sql = @sql + 'sum(case b.配件 when ' ' '+配件+ ' ' '
then 数量 else 0 end) as ' ' '+配件+ ' ' ', '
from (select distinct 配件 from 表2) as a
select @sql = left(@sql,len(@sql)-1) + ' from 表1 a,表2 b where a.名称=b.名称 group by 名称,重量,价格 '
exec(@sql)
go