两张表SUM,再求百分的SQL问题

程序猿小明 发布于 2015/05/08 22:22
阅读 513
收藏 0

表A


examname
考卷名称
examid
考卷id
chapterid
章节id
stuTimeSet
规定学时 
试卷6 6 1 20
试卷6
6 2 30
试卷6
6 3 50
测试4
4 1 50
测试4
4 2 50

表B


userid
用户id
examid
考卷id
chapterid
章节id
stuTime
已学习的学时时间
1 6 3 50

我想获得该学生的学时进度,大致如下。


userid
用户id
examname
考卷名称
examid
考卷id
percent
百分比
1 考卷6
6 50%

百分比是通过SUM(B.STUTIME)除以SUM(A.STUTIMESET)的。

有人能告诉我这SQL怎么写吗。我group by一直group by不出来

我是这样写的。哪里错了

SELECT a.examid, a.examname, b.userid,SUM(a.stutimeset) as '已学时间',sum(b.stutime) as '课程总时间', 
(ceil(ifnull(sum(b.stutime), 0) / sum(a.stuTimeSet)*100)) as percent 
FROM stutimeconfig a, stutimedata b 
  where b.userid = 1
  group by a.examid
结果是这样的:

这个已学时间总是出错了

加载中
0
JavaOlder
JavaOlder
建议不在SQL语句里面实现,这样太影响效率,
0
勇敢的蜗牛_Z
勇敢的蜗牛_Z
FROM stutimeconfig a, stutimedata b 

  where b.userid = 1


a b为什么没有关联关系

0
程序猿小明
程序猿小明

引用来自“勇敢的蜗牛_Z”的评论

FROM stutimeconfig a, stutimedata b 

  where b.userid = 1


a b为什么没有关联关系

这个要怎么关联呢,不是很懂。现在我的想法是列出学员的学习情况
0
程序猿小明
程序猿小明

引用来自“JavaOlder”的评论

建议不在SQL语句里面实现,这样太影响效率,
那请问,你能跟我说下你的思路吗。可以把SQL拆分成几次的吗?
0
勇敢的蜗牛_Z
勇敢的蜗牛_Z
left join   ****on  *** 你搜索一下 on后面就是两张变 关联关系的字段
返回顶部
顶部