求SQL语句怎么写
时间:2011-12-01
来源:互联网
一张单位表Unit:
ID Name
1 中石油
2 中移动
3 电信
另一张表Info:
ID UnitID Num Point
1 1 1 2
2 1 2 1
3 2 1 1
4 3 2 2
若Num=1时 得1分 若Num=2时 得3分
若Point=1时 得1分 若Point=2 得3分
还有在info表中有单位纪录一条得1分
希望得到的表如下
Name 得分
中石油 10
中移动 3
电信 7
例举第一条10分的计算(计算方式(在Info表UnitID为1时有两条加2分,其中Num一个为1一个为2所以加4分,Point一个为2一个为1所以再加4分,总为10分)
)
ID Name
1 中石油
2 中移动
3 电信
另一张表Info:
ID UnitID Num Point
1 1 1 2
2 1 2 1
3 2 1 1
4 3 2 2
若Num=1时 得1分 若Num=2时 得3分
若Point=1时 得1分 若Point=2 得3分
还有在info表中有单位纪录一条得1分
希望得到的表如下
Name 得分
中石油 10
中移动 3
电信 7
例举第一条10分的计算(计算方式(在Info表UnitID为1时有两条加2分,其中Num一个为1一个为2所以加4分,Point一个为2一个为1所以再加4分,总为10分)
)
作者: xiaozhang1528008 发布时间: 2011-12-01
SQL code
select a.name,sum(case when b.num = 1 then 1 when b.num = 2 then 3 else 0 end) + sum(case when b.Point= 1 then 1 when b.Point= 2 then 3 else 0 end) + sum(1) as 得分 from unit a,info b where b.unitid = a.id group by a.name
作者: Haiwer 发布时间: 2011-12-01
可能不得分的也要显示
SQL code
SQL code
select a.name,sum(case when b.num = 1 then 1 when b.num = 2 then 3 else 0 end) + sum(case when b.Point= 1 then 1 when b.Point= 2 then 3 else 0 end) + sum(case when b.unitid is not null then 1 else 0 end) as 得分 from unit a left join info b on b.unitid = a.id group by a.name
作者: Haiwer 发布时间: 2011-12-01
SQL code
select a.name, sum(case when b.num = 1 then 1 when b.num = 2 then 3 else 0 end) + sum(case when b.Point= 1 then 1 when b.Point= 2 then 3 else 0 end) + sum(case when b.unitid is not null then 1 else 0 end) as 得分 from unit a left join info b on b.unitid = a.id group by a.name
作者: fredrickhu 发布时间: 2011-12-01
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28