求高手给一个sql语句 谢谢!
原表
id所属门派姓名属性属性值
1武当张三丰悟性252
5武当张三丰体力8
6武当张三丰智力8
7武当张三丰精神4
8武当张三丰内力2
10武当张三丰运气8
15武当张无忌悟性126
19武当张无忌体力12
20武当张无忌智力8
21武当张无忌精神9
22武当张无忌内力8
24武当张无忌运气16
29武当唐三悟性0
33武当唐三体力24
34武当唐三智力20
35武当唐三精神8
36武当唐三内力4
38武当唐三运气16
43少林海登悟性32
47少林海登体力2
48少林海登智力2
49少林海登精神0
50少林海登内力0
52少林海登运气4
57少林无名老僧悟性32
61少林无名老僧体力2
62少林无名老僧智力1
63少林无名老僧精神0
64少林无名老僧内力0
66少林无名老僧运气8
71峨嵋章子怡悟性32
75峨嵋章子怡体力3
76峨嵋章子怡智力0
77峨嵋章子怡精神0
78峨嵋章子怡内力0
80峨嵋章子怡运气4
求sql语句 使结果为
所属门派悟性和体力和智力和精神和内力和运气和
武当3784436211440
少林64430012
峨嵋3230004
十分感谢
[解决办法]
数据太多,我就不全造了。
CREATE TABLE tb (所属门派 VARCHAR(10),姓名 VARCHAR(10),属性 VARCHAR(10),属性值 INT )
INSERT INTO TB
SELECT '武当','张三丰','悟性',252
UNION ALL SELECT'武当','张三丰','体力',8
UNION ALL SELECT'少林','海登','体力',2
UNION ALL SELECT'少林','海登','悟性',32
DECLARE @s NVARCHAR(4000)
SET @s = ''
SELECT @s = @s + ',' + 属性 + '和' + '=sum(case when [属性]='
+ QUOTENAME([属性], '''') + ' then [属性值] else 0 end)'
FROM tb
GROUP BY 属性
EXEC('select [所属门派]'+@s+' from tb group by [所属门派]')
/*
所属门派 体力和 悟性和
---------- ----------- -----------
少林 2 32
武当 8 252
(2 行受影响)
*/