年度 季度 销量
1991 1 20
1991 2 79
1991 3 60
1991 4 68
1992 1 56
1992 2 54用一个sql语句查询成这样的结果年份 1季度 2季度 3季度 4季度
1991 20 79 60 68
1992 56 54
1991 1 20
1991 2 79
1991 3 60
1991 4 68
1992 1 56
1992 2 54用一个sql语句查询成这样的结果年份 1季度 2季度 3季度 4季度
1991 20 79 60 68
1992 56 54
sum(if(季度=1,销量,0)) as 1季度,
sum(if(季度=2,销量,0)) as 2季度,
sum(if(季度=3,销量,0)) as 3季度,
sum(if(季度=4,销量,0)) as 4季度
from test
group by 年度
结果是这样?
年份 1季度 2季度 3季度 4季度
1991 20 0 0 0
1991 0 79 0 0
1991 0 0 60 0
1991 0 0 0 68
1992 56 0 0 0
1992 0 54 0 0
不过加上sum后为什么查出来的结果是20.0000000000就是后面带了好多000000000000
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
http://community.csdn.net/Help/HelpCenter.htm#结帖
8、如何给分和结贴?a.点击帖子左上方的“结贴去...”按钮,到达结贴页面。根据用户回答情况来分配帖子的可用分,得分填写到每一楼后的得分框中,分配完毕后,点击左上方 (或左下方)的“确认结贴”,完成结贴。结贴完成后,系统将返回帖主该帖50%的可用分。b.如果没有满意的答案,可以直接选择无满意结贴 。无满意结贴时,帖子的可用分由系统收回,且没有任何可用分返回给帖主。
--------------------------------------------------------------------------------
SELECT 年度 FROM TT GROUP BY 年度
PIVOT 季度 IN(1,2,3,4)
TRANSFORM SUM(NZ(销量,0))
SELECT 年度 FROM TT GROUP BY 年度
PIVOT 季度 IN(1,2,3,4)没用过 transform pivot 关键字