读书人

交叉表有关问题

发布时间: 2012-01-10 21:26:51 作者: rapoo

交叉表问题
类似于:
表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

读书人网 >VB

热点推荐