ASP ACCESS SQL分类选择并求和
例如:表1idusername1张三2李四3王五4赵六……表2idusername1point1point21张三412张三413王五224李四3.35王五12……显示页...
例如:
表1
id username
1 张三
2 李四
3 王五
4 赵六
……
表2
id username1 point1 point2
1 张三 4 1
2 张三 4 1
3 王五 2 2
4 李四 3. 3
5 王五 1 2
……
显示页面
姓名 得分1 得分2
张三 8 2
李四 3 3
王五 3 4
……
问题如下:
我目前的SQL查询是这样写的,SQL="select 表1.username as 姓名,sum(iif(表1.username = 表2.username1 ,iif(point1='1',1,iif(point1='2',2,iif(point1='3',3,iif(point1='4',4,0)))),0)) as 得分1,iif(point2='1',1,iif(point2='2',2,iif(point2='3',3,iif(point2='4',4,0)))),0)) as 得分2 from 表1,表2 group by 表1.username"
虽然可以得到其中一个人的得分1和得分2的和值,但是这仅局限于SQL语句中IIF的判定数值,如果point1的值超出iif中判定数值,那么就计算错误,我想请教各位朋友,有没有一个好的方法在数据库中动态读取表2中point1和point2的值而不必写入大量的预判数值就可以进行和值计算呢?
我目前的SQL查询是这样写的,SQL="select 表1.username as 姓名,sum(iif(表1.username= 表2.username1,1,0)) as 记录数,sum(iif(表1.username = 表2.username1 ,iif(point1='1',1,iif(point1='2',2,iif(point1='3',3,iif(point1='4',4,0)))),0)) as 得分1,iif(point2='1',1,iif(point2='2',2,iif(point2='3',3,iif(point2='4',4,0)))),0)) as 得分2 from 表1,表2 group by 表1.username" 展开
表1
id username
1 张三
2 李四
3 王五
4 赵六
……
表2
id username1 point1 point2
1 张三 4 1
2 张三 4 1
3 王五 2 2
4 李四 3. 3
5 王五 1 2
……
显示页面
姓名 得分1 得分2
张三 8 2
李四 3 3
王五 3 4
……
问题如下:
我目前的SQL查询是这样写的,SQL="select 表1.username as 姓名,sum(iif(表1.username = 表2.username1 ,iif(point1='1',1,iif(point1='2',2,iif(point1='3',3,iif(point1='4',4,0)))),0)) as 得分1,iif(point2='1',1,iif(point2='2',2,iif(point2='3',3,iif(point2='4',4,0)))),0)) as 得分2 from 表1,表2 group by 表1.username"
虽然可以得到其中一个人的得分1和得分2的和值,但是这仅局限于SQL语句中IIF的判定数值,如果point1的值超出iif中判定数值,那么就计算错误,我想请教各位朋友,有没有一个好的方法在数据库中动态读取表2中point1和point2的值而不必写入大量的预判数值就可以进行和值计算呢?
我目前的SQL查询是这样写的,SQL="select 表1.username as 姓名,sum(iif(表1.username= 表2.username1,1,0)) as 记录数,sum(iif(表1.username = 表2.username1 ,iif(point1='1',1,iif(point1='2',2,iif(point1='3',3,iif(point1='4',4,0)))),0)) as 得分1,iif(point2='1',1,iif(point2='2',2,iif(point2='3',3,iif(point2='4',4,0)))),0)) as 得分2 from 表1,表2 group by 表1.username" 展开
1个回答
展开全部
select username1,sum(point1),sum(point2) from aaa group by username1
这样就行了啊
这样就行了啊
追问
我首先需要比较表1的人名,获取在表2中得到的记录数,再累加每个人的point1和point2的和
代码如下:
select 表1.username as 姓名,sum(iif(表1.username= 表2.username1,1,0)) as 记录数,sum(iif(表1.username = 表2.username1 ,iif(point1='1',1……
追答
select username1,sum(point1),sum(point2) from 表1,表2 where 表1.username =表2.username1 group by username1
先运行我的sql语句
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询