日期:2014-05-19  浏览次数:20519 次

分类的一个统计
表AA
记录ID       名称           类型           属性
AID             TheName     TheType       pro
1                 名称1         电器           属性1
2                 名称2         日用           属性2
3                 名称3         珠宝           属性3
4                 名称2         日用           属性4
5                 名称5         电器           属性5
6                 名称3         珠宝           属性1
7                 名称3         珠宝           属性3
...   ...   ...
名称在记录中会重复,类型跟随名称,属性有多种,属性不跟随名称。
怎么写语句统计出:
类型   名称     属性1     属性2     属性3     属性4     属性5
电器   名称1     1             0               0             0           0
电器   名称5     0             0               0             0           1
日用   名称2     0             1               0             1           0
珠宝   名称3     1             0               2             0           0
...   ...   ...

------解决方案--------------------
等老大们来。
------解决方案--------------------
帮顶。
------解决方案--------------------
楼主的信誉值是101啊,怎么整的?
------解决方案--------------------
create table 表AA(AID int, TheName nvarchar(20), TheType nvarchar(10), pro nvarchar(10))
insert 表AA
select 1 , N '名称1 ', N '电器 ' , N '属性1 '
union select 2 , N '名称2 ' , N '日用 ' , N '属性2 '
union select 3 , N '名称3 ' , N '珠宝 ' , N '属性3 '
union select 4 , N '名称2 ' , N '日用 ' , N '属性4 '
union select 5 , N '名称5 ' , N '电器 ' , N '属性5 '
union select 6 , N '名称3 ' , N '珠宝 ' , N '属性1 '
union select 7 , N '名称3 ' , N '珠宝 ' , N '属性3 '


Declare @STR NVarchar(4000)

Select @STR = ' Select TheType,TheName '
Select @STR = @STR + N ',SUM(Case pro When N ' ' ' + pro + ' ' ' Then 1 Else 0 End) As ' + pro
From 表AA
print @str
Select @STR = @STR + ' From 表AA Group By TheType,TheName '

EXEC(@STR)
------解决方案--------------------