Sql 如何仅为获得及格分数的学生找到排名?

Sql 如何仅为获得及格分数的学生找到排名?,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我在一个数据库表中有学生分数,比如 studid, studname, m1, m2, m3 studid, studname. 以及另一个数据库表中的学生个人信息,如 studid, studname, m1, m2, m3 studid, studname. 我想连接这两个表以获得studid,studname,((m1,m2,m3)必须是“总计”的总和) 学生的结果必须显示m1、m2、m3试一下 select studID, Studname, m1, m2, m3, (m1+

我在一个数据库表中有学生分数,比如

studid, studname, m1, m2, m3
studid, studname.
以及另一个数据库表中的学生个人信息,如

studid, studname, m1, m2, m3
studid, studname.
  • 我想连接这两个表以获得studid,studname,((m1,m2,m3)必须是“总计”的总和)

    学生的结果必须显示m1、m2、m3试一下

    select studID, Studname, m1, m2, m3, (m1+ m2+ m3) as 'Total', 
        case 
            when(m1<40 OR m2<40 OR m3<40) 
            then 'FAIL' 
            else 'PASS' 
        end as 'Result'
    
    选择studID、Studname、m1、m2、m3、(m1+m2+m3)作为“总计”,
    案例
    当(m1试试这个

    select studID, Studname, m1, m2, m3, (m1+ m2+ m3) as 'Total', 
        case 
            when(m1<40 OR m2<40 OR m3<40) 
            then 'FAIL' 
            else 'PASS' 
        end as 'Result'
    
    选择studID、Studname、m1、m2、m3、(m1+m2+m3)作为“总计”,
    案例
    
    当(m1时,您可以像这样使用
    densite\u RANK()
    CASE

    SELECT studid, studname,(m1 + m2 + m3) as Totalmarks,
    CASE WHEN (m1 >= 40 AND m2 >= 40 AND m3 >= 40) THEN 'PASS' ELSE 'FAIL' END,
    CASE WHEN (m1 >= 40 AND m2 >= 40 AND m3 >= 40) THEN DENSE_RANK()OVER(ORDER BY (m1 + m2 + m3) DESC) ELSE NULL END std_rank
    FROM studentmarks
    WHERE m1 >= 40 AND m2 >= 40 AND m3 >= 40
    
    编辑


    如果您想让所有学生都删除
    WHERE
    子句

    ,您可以像这样使用
    DENSE\u RANK()
    CASE

    SELECT studid, studname,(m1 + m2 + m3) as Totalmarks,
    CASE WHEN (m1 >= 40 AND m2 >= 40 AND m3 >= 40) THEN 'PASS' ELSE 'FAIL' END,
    CASE WHEN (m1 >= 40 AND m2 >= 40 AND m3 >= 40) THEN DENSE_RANK()OVER(ORDER BY (m1 + m2 + m3) DESC) ELSE NULL END std_rank
    FROM studentmarks
    WHERE m1 >= 40 AND m2 >= 40 AND m3 >= 40
    
    编辑




    如果你想显示所有学生删除
    WHERE
    子句

    你能发布你的完整表格和示例数据以及你使用的rdbms数据的预期结果吗?结果必须是这样的。studid studname m1 m2 m3总结果排名101 arjun 60 48 66 174 pass 3 102 kumar70 55 80 205通过1 103 Arun 55 60 58 173通过2您可以发布完整的表格和示例数据以及使用该数据的预期结果您使用的是哪种rdbms?结果必须是这样的。studid studname m1 m2 m3总结果排名101 arjun 60 48 66 174通过3102 kumar 70 55 80 205 pass 1 103 Arun 55 60 58 173 pass 2您可以发布完整的表格和示例数据以及使用该数据的预期结果您使用的是哪种rdbms?结果必须是这样的。studid studname m1 m2 m3总结果排名101 arjun 60 48 66174及格3 102 kumar 70 55 80 205及格1 103 Arun 55 60 58 173及格2我还想找到仅获得及格分数的职级职位使用Sql Server 2008管理研究我还想找到仅获得及格分数的职级职位使用Sql Server 2008管理研究o要查找仅获得及格分数的排名职位我使用Sql Server 2008管理研究我需要查询以仅获得及格学生的排名。您能帮助我吗?但它将结果失败视为第三名,如101 Arjun 229 pass 1 108 Francis 222 pass 2 109 John 210 fail NULL 106 Venkatesh 202 pass 4 103 Perumal 201 pass 5 105 Siva199通过6104 Vignesh 180通过7110 Wesly 177未通过无效107 Vijay 166通过9102 Kumar 152通过10我只需要显示通过分数的等级。我想要这样的结果studid studname总结果等级101 Arjun 229通过1108 Francis 222不应考虑通过2个不及格的学生…将where条件添加到查询中以筛选出结果。选择studID、Studname、m1、m2、m3、(m1+m2+m3)作为“总计”,如有必要,请按大小写(m1=40按总数排序我需要查询以获得合格学生的排名。你能帮助我吗?但它会将结果不合格作为第三名,如101 Arjun 229 pass 108 Francis 222 pass 2 109 John 210 fail NULL 106 Venkatesh 202 pass 4 103 Perumal 201 pass 5 105 Siva 199 pass 6 104 Vignesh 180 pass 7 110 Wesly 177 fail 107 Vijay 166 pass 9102 Kumar 152 PASS 10我只需要显示及格分数的排名..我想要这样的结果studid studname总成绩排名101 Arjun 229 PASS 1 108 Francis 222 PASS 2不及格的学生不应考虑..添加where条件用于筛选出结果的查询。选择studID、Studname、m1、m2、m3,(m1+m2+m3)作为“总计”,如有必要,按大小写(m1=40按总数排序我需要查询以获得合格学生的排名。你能帮助我吗?但它会将结果不合格作为第三名,如101 Arjun 229 pass 108 Francis 222 pass 2 109 John 210 fail NULL 106 Venkatesh 202 pass 4 103 Perumal 201 pass 5 105 Siva 199 pass 6 104 Vignesh 180 pass 7 110 Wesly 177 fail 107 Vijay 166 pass 9102 Kumar 152 PASS 10我只需要显示及格分数的排名..我想要这样的结果studid studname总成绩排名101 Arjun 229 PASS 1 108 Francis 222 PASS 2不及格的学生不应考虑..添加where条件用于筛选出结果的查询。选择studID、Studname、m1、m2、m3,(m1+m2+m3)作为“总计”,如有必要,按大小写(m1=40,顺序为TotalThank,但它将结果失败作为第三级,如101 Arjun 229 PASS 108 Francis 222 PASS 2 109 John 210 fail NULL 106 Venkatesh 202 PASS 4 103 Perumal 201 PASS 5 105 Siva 199 PASS 6 104 Vignesh 180 PASS 7 110 Wesly 177 fail NULL 107 Vijay 166 PASS 9 102 Kumar 152 PASS 10我只需要显示及格分数的等级想要这样的结果studid studname总成绩排名101 Arjun 229通过1 108 Francis 222通过2不合格学生不应考虑…如果想要排除不合格结果,请添加一个过滤器
    ,其中m1>=40和m2>=40和m3>=40
    。在这种情况下,仅通过stud考生将被列为Hanks,但它会把结果不及格作为第三级,如101 Arjun 229 PASS 108 Francis 222 PASS 2 109 John 210 fail NULL 106 Venkatesh 202 PASS 4 103 Perumal 201 PASS 5 105 Siva 199 PASS 6 104 Vignesh 180 PASS 7 110 Wesly 177 fail NULL 107 Vijay 166 PASS 9 102 Kumar 152 PASS 10我只需要显示及格分数的等级ant这样的结果studid studname总成绩排名101 Arjun 229 pass 1 108 Francis 222 pass