我的声明是这样的:
SELECT, id, Subject, score, fm
FROM(
SELECT id, Subject, SUM( score )/SUM(mm)*100 AS score,
SUM(mm) as fm,
SUM(CASE WHEN enna IN ('test')
THEN (score)
END)/SUM(CASE WHEN enna IN ('test')
THEN (mm)
END)*100 AS scoreb
FROM table WHERE id ='2' AND Year='2014'
AND enna = 'exam'
GROUP BY Subject)r;
<强> SQL FIDDLE HERE
如何使用 test 作为主题之一,以及在相应的行中如何将 Scoreb 作为字段 score1
中的行之一。我一直在谷歌搜索,找不到任何线索。
我没有足够的声誉,无法在此处上传,因此我已在
最佳答案
我认为最简单的方法是使用union all
:
SELECT id, Subject, score, mm as fm
FROM table
WHERE id = '2' AND Year='2014' AND enna = 'exam'
UNION ALL
SELECT id, 'test' as Subject, SUM(score) as score,
SUM(score)/SUM(mm)*100 AS fm
FROM table
WHERE id = '2' AND Year='2014' AND enna = 'test' ;
顺便说一句,我没有得到 fm
的计算结果。查询中的计算与您显示的结果不同。但这很容易调整。
关于php - Mysql - 将总和输出为单个表中一个字段中的行之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24850723/