【发布时间】:2015-03-04 05:20:10
【问题描述】:
我创建了一个 sql 选择查询,但我无法正确显示记录。
表:
gradeid | usrname | reviewmonth | program | total_score | pae
--------------------------------------------------------------
151 | smithj | 2 | math | 100% | 100%
152 | smithj | 2 | math | 95% | 100%
153 | smithj | 3 | math | 80% | 100%
154 | jonesm | 3 | math | 79% | 79%
155 | jonesj | 2 | art | 100% | 100%
我为显示信息而创建的查询是
SELECT reviewmonth,
ROUND(AVG( IF(pae = 79, (IF(pae < total_score, pae,total_score)),total_score)),2) AS January
FROM vwscore
WHERE program = 'Math' AND reviewmonth = 1
UNION ALL
SELECT reviewmonth,
ROUND(AVG( IF(pae = 79, (IF(pae < total_score, pae,total_score)),total_score)),2) AS February
FROM vwscore
WHERE program = 'Math' AND reviewmonth = 2
UNION ALL
SELECT reviewmonth,
ROUND(AVG( IF(pae = 79, (IF(pae < total_score, pae,total_score)),total_score)),2) AS March
FROM vwscore
WHERE program = 'Math' AND reviewmonth = 3
UNION ALL
查询返回:不幸的是我需要水平显示记录。
reviewmonth | January
----------------------
1 | 91.94
2 | 94.86
3 | 89.89
期望的结果:
January | February | March
--------------------------
91.94| 94.86 | 89.89
我尝试了不同的查询来显示答案。我尝试使用 CASE,但它似乎只显示 1 条记录。感谢你的帮助!
【问题讨论】:
-
SELECT COUNT(CASE WHEN reviewmonth = 1 THEN ROUND(AVG( IF(pae = 79, (IF(pae
-
我收到此错误:[Err] 1111 - 无效使用组功能。谢谢您的帮助。我是不是错过了什么。我按照提供的链接中的 sql 进行操作。
标签: mysql sql pivot-table crosstab