数据库表:t_score
id student teacher score
1 张三 王老师 80
2 张三 韩老师 90
3 李四 王老师 70
4 王五 王老师 60
5 王五 韩老师 60
我现在要在页面输出如下的内容:学生 打分教师 总分 平均分
张三 王老师,韩老师 170 85
李四 王老师 70 70
王五 王老师,韩老师 120 60请教各位前辈,这个应该怎么显示啊,用一条sql语句能实现吗?在线等,谢谢各位..
id student teacher score
1 张三 王老师 80
2 张三 韩老师 90
3 李四 王老师 70
4 王五 王老师 60
5 王五 韩老师 60
我现在要在页面输出如下的内容:学生 打分教师 总分 平均分
张三 王老师,韩老师 170 85
李四 王老师 70 70
王五 王老师,韩老师 120 60请教各位前辈,这个应该怎么显示啊,用一条sql语句能实现吗?在线等,谢谢各位..
这样的话GROUP_CONCAT()就不好用了啊...?
select student as 学生, group_concat(teacher) as 打分教师, sum(score) as 总分, avg(score) as 平均分 from t_score group by student
那可以用left join外联一下再group_concat名字
数据库表 t_users
id name
1 张三
2 李四
3 王五
数据库表t_kaohe
infoid kaoherenid beikaoherenid getscore
1 1 2 50
1 1 3 60
1 2 3 70
1 3 2 80
最后实现这个样
考核问卷id 考核人 被考核人 总分 平均分
1 张三 李四,王五 110 55
1 李四 王五 70 70
1 王五 李四 80 80您再给看看啊,应该怎么办啊?谢谢 谢谢
SELECT k.infoid AS 考核问卷id, u1.name AS 考核人, GROUP_CONCAT(u2.name) AS 被考核人, SUM(k.getscore) AS 总分, AVG(k.getscore) AS 平均分 FROM t_kaohe k LEFT JOIN t_users u1 ON u1.id = k.kaoherenid LEFT JOIN t_users u2 ON u2.id = k.beikaoherenid GROUP BY k.kaoherenid, k.infoid ORDER BY k.infoid ASC, 平均分 ASC
infoid kaoherenid beikaoherenid getscore
1 2 3 70
1 3 2 80
按照你的方式,输出后,“王五”就成了null了,这是怎么了啊
考核问卷id 考核人 被考核人 总分 平均分
1 张三 李四,王五 110 55
1 李四 null 70 70
1 null 李四 80 80
1 李四 王五 70 70
1 王五 李四 80 80
如果我数据库里面只有这两条数据的时候,就会输出如下的..
1 李四 null 70 70
1 null 李四 80 80
SQL 查询:
SELECT k.infoid AS 考核问卷id, u1.name AS 考核人, GROUP_CONCAT( u2.name ) AS 被考核人, SUM( k.getscore ) AS 总分, AVG( k.getscore ) AS 平均分
FROM t_kaohe k
LEFT JOIN t_users u1 ON u1.id = k.kaoherenid
LEFT JOIN t_users u2 ON u2.id = k.beikaoherenid
GROUP BY k.kaoherenid, k.infoid
ORDER BY k.infoid ASC , 平均分 ASC
LIMIT 0 , 30
[编辑] [解释 SQL] [创建 PHP 代码] [刷新]
行,开始行数:
以 模式显示,并且在 个单元格后重复标题
考核问卷id
考核人
被考核人
总分
平均分
1 张三 李四,王五 110 55.0000
1 李四 王五 70 70.0000
1 王五 李四 80 80.0000
我觉得应该是id跟人名对应有问题。我这里执行是正确的。
前辈啊,我现在需要再显示如下的
考核问卷id 被考核人 被考核人 总分 平均分
1 李四 张三,王五 130 65
1 王五 张三,李四 130 65我改了改您的sql语句,可还是实现不了,您能再给看看吗?谢谢谢谢
考核问卷id 被考核人 考核人 总分 平均分
1 李四 张三,王五 130 65
1 王五 张三,李四 130 65我改了改您的sql语句,可还是实现不了,您能再给看看吗?谢谢谢谢