原表
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语句 使结果为所属门派 悟性和 体力和 智力和 精神和 内力和 运气和
武当 378 44 36 21 14 40
少林 64 4 3 0 0 12
峨嵋 32 3 0 0 0 4
十分感谢
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语句 使结果为所属门派 悟性和 体力和 智力和 精神和 内力和 运气和
武当 378 44 36 21 14 40
少林 64 4 3 0 0 12
峨嵋 32 3 0 0 0 4
十分感谢
解决方案 »
- 计划任务出错
- 请教一个sql (oracle)
- SQL Server与Access语句不同的地方
- 为什么我检索最大值时最大是99?明明有超过100的数!
- 存储过程的基本使用
- 声明一下我的数据库是access,因为那里没人做答,如何将日期转化成字符型,并且转化成'2009-09-02'的格式 ,而format()是'2009-9-2'的格式呀
- 循环查询,并对查询结果进行处理!~
- 帮忙写一个SQL语句
- 入门问题
- 为什么同样的vb程序在win98下面可以运行,在winnt下就出现odbc连结占线的出错提示?
- 电脑号码用什么数据类型,长途号码第一个“0”用什么类型
- exec 加上 FOR XML PATH 输出结果就不对了 请教
INSERT INTO TB
SELECT '武当', '张三丰', '悟性', 252
UNION ALL SELECT '武当', '张三丰', '体力', 8
UNION ALL SELECT '少林', '海登', '体力', 2
UNION ALL SELECT '少林', '海登', '悟性', 32DECLARE @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 行受影响)*/
万分感谢~! 学到了不少知识
有些地方需要做一下修改,因为有些字段里的内容可能包含 - / 、........等等符号,可能导致exec出错,所以加上引号就可以了DECLARE @s NVARCHAR(4000)
SET @s = ''
SELECT @s = @s + ',' + QUOTENAME(属性) + '和' + '=sum(case when [属性]='
+ QUOTENAME([属性], '''') + ' then [属性值] else 0 end)'
FROM tb
GROUP BY 属性 EXEC('select [所属门派]'+@s+' from tb group by [所属门派]') 这样就更稳妥了,再次感谢!!
DECLARE @s NVARCHAR(4000)
SET @s = ''
SELECT @s = @s + ',' + QUOTENAME(属性 + '和') + '=sum(case when [属性]='
+ QUOTENAME([属性], '''') + ' then [属性值] else 0 end)'
FROM bb
GROUP BY 属性
EXEC('select [所属门派]'+@s+' from bb group by [所属门派]')