想分组查询每个人不同类型分数的分数和,还有分数构成!效率成问题!!

梦里开天 2015-10-31 12:14:03
我这有个人员表Tuser(userid,username),还有一个计分表Tpoint(pointid,userid,pointtype,point)分别有pointtype四类1、2、3、4,每个人都有很多计分数据。

现在想统计出每个人每类数据的和,sum(point1)、sum(point2)、sum(point3)、sum(point4)
sql:
select userid,sum(point)from tuser,Tpoint where pointtype=‘1’ group by userid
问题一:四个分数类型怎么连接成一个表?
问题二:每类分数还分为加分和减分,想统计
sum(point1+),sum(point1-)
sum(point2+),sum(point2-)
sum(point3+),sum(point3-)
sum(point4+),sum(point4-)
,本来这些逻辑都是写在代码里,但是便利每个员工,再单独查询,效率太低,想通过sql语句实现,大家给看看
还有是不是我建表四种分这里不太理想啊?
...全文
183 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
梦里开天 2015-10-31
  • 打赏
  • 举报
回复
终于理清楚了,所有逻辑都在sql里完成,初步方案如下,大家指点

(SELECT [user_id],[point_type],SUM([point]) as pointsum,sum(case when [point] > 0 then point else 0 end)as pointacc,
sum(case when [point] < 0 then point else 0 end)as pointdec
FROM [workpointmanage_sass].[dbo].[tb_point]
 group by [user_id],[point_type]) order by user_id,[point_type]
梦里开天 2015-10-31
  • 打赏
  • 举报
回复
引用 1 楼 shoppo0505 的回复:
pointtype就是4类,加减公分在Tpoint.point中用正负标识。 select userid, pointtype, sum(point) from Tpoint group by userid, pointtype
谢谢
shoppo0505 2015-10-31
  • 打赏
  • 举报
回复
pointtype就是4类,加减公分在Tpoint.point中用正负标识。 select userid, pointtype, sum(point) from Tpoint group by userid, pointtype

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧