标题:求一个不同人成绩对应不同成绩等级的查询
只看楼主
wyysmjlyb
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2020-6-22
 问题点数:0 回复次数:2 
求一个不同人成绩对应不同成绩等级的查询
不同班级的同学,成绩对应不同等级,且不同等级的数量还不同,求一个查询方法。如1班分 90分优秀,80分良好,70中等,60分及格四挡,2班分,85分良好,60及格两档。
有表如下,简易的表,如果需要辅助列可以随便加的。
人员表
eid         score          did
人员的id    获得的分数     对应的班级id
1           90             1
2           80             1
3           72             1
4           90             2
5           80             2
6           72             2
等级表
id         score          title
班级id     分数           等级名称
1          90             优秀
1          80             良好
1          70             中等
1          60             及格
2          85             良好
2          60             及格
搜索更多相关主题的帖子: 对应 不同 成绩 等级 查询 
2020-06-22 08:57
oldfish96
Rank: 2
等 级:论坛游民
威 望:1
帖 子:16
专家分:17
注 册:2020-7-24
得分:0 
DECLARE @Personnel TABLE
    (
        eid INT,   --人员的id
        score INT, --获得的分数
        did INT    --对应的班级id
    )
DECLARE @Grade TABLE
    (
        id INT,           --班级id
        score INT,        --分数
        title VARCHAR(20) --等级名称
    )


INSERT @Personnel( eid, score, did )
VALUES
( 1, 90, 1 ),
( 2, 80, 1 ),
( 3, 72, 1 ),
( 4, 90, 2 ),
( 5, 80, 2 ),
( 6, 72, 2 ),
( 7, 98, 1 )

INSERT @Grade( id, score, title )
VALUES
( 1, 90, '优秀' ),
( 1, 80, '良好' ),
( 1, 70, '中等' ),
( 1, 60, '及格' ),
( 2, 85, '良好' ),
( 2, 60, '及格' ),
( 1, 95, '优秀+' )

DECLARE @Grade加区间 TABLE( id INT, title VARCHAR(20), min_score INT, max_score INT );

WITH te
AS
    (
    SELECT ROW_NUMBER() OVER ( PARTITION BY id ORDER BY score ) 顺序, * FROM @Grade AS A --ORDER BY id
    )
INSERT @Grade加区间( id, title, min_score, max_score )
    SELECT t.id, t.title, t.score, ISNULL(( SELECT TOP 1 te.score FROM te WHERE te.顺序 = t.顺序 + 1 ), 100) AS max_score
        FROM te t

SELECT * FROM @Grade加区间


SELECT *,
       ISNULL(( SELECT TOP 1 G.title FROM @Grade加区间 AS G WHERE P.score >= G.min_score AND P.score < G.max_score ), '其他') 等级
    FROM @Personnel AS P


[此贴子已经被作者于2020-7-26 01:59编辑过]

2020-07-26 01:54
sssooosss
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:3
帖 子:664
专家分:1115
注 册:2019-8-27
得分:0 
共同学习
2020-08-07 08:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-502224-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.139243 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved