如何从sql查询中计算排名并在c代码中获得该值

如何从sql查询中计算排名并在c代码中获得该值,sql,sql-server,Sql,Sql Server,我有一个名为tbl\u Generation的表 该表中有多个列。重要的一个是RGenerate,它是一个布尔值,该列中只包含0或1,并且EmpID(来自tbl\U员工) 桌子是这样的 RGenerate EmpCode 0 101 1 101 0 101 1 201 1 201 例如,这里empcode101的总计数为1,而empcode201的总计数为2。 我想

我有一个名为
tbl\u Generation
的表
该表中有多个列。重要的一个是
RGenerate
,它是一个布尔值,该列中只包含0或1,并且
EmpID(来自tbl\U员工)

桌子是这样的

 RGenerate    EmpCode
 0            101
 1            101
 0            101 
 1            201
 1            201
例如,这里
empcode101
的总计数为1,而
empcode201
的总计数为2。
我想计算每个用户的排名,根据哪个用户的RGenerate最高。
我正在使用SQL server 2012

我希望在代码隐藏页面上为特定用户设置排名。
现在我有了一个asp.net仪表板页面,用户可以在其中看到他的排名


如何编写相应的SQL查询?

使用window函数和casting编写SQL查询,为每个用户分配排名,然后将其显示在网页上

SELECT EmpCode, 
       row_number() over(order by sum(cast(RGenerate as int)) desc) rank
FROM tbl_Generation
GROUP BY EmpCode

使用窗口函数和casting编写SQL查询,为每个用户分配排名,然后将其显示在网页上

SELECT EmpCode, 
       row_number() over(order by sum(cast(RGenerate as int)) desc) rank
FROM tbl_Generation
GROUP BY EmpCode

你的问题要回答得有点宽泛。例如,您希望在哪里执行计算?在数据库还是在应用服务器上?你的桌子上有多少条记录?是否希望仪表板具有分页功能(不在一页中显示所有结果)?所以我会先从我想做的事情开始,并详细说明我的第一个问题。例如,我不知道如何编写SQL查询,例如,我尝试了这个,但没有成功。等等,“如何编写sql查询?”-那么您想要一个sql解决方案?我可以问一下为什么要用
c#
asp.net
标记吗?你的问题要回答得有点宽泛。例如,您希望在哪里执行计算?在数据库还是在应用服务器上?你的桌子上有多少条记录?是否希望仪表板具有分页功能(不在一页中显示所有结果)?所以我会先从我想做的事情开始,并详细说明我的第一个问题。例如,我不知道如何编写SQL查询,例如,我尝试了这个,但没有成功。等等,“如何编写sql查询?”-那么您想要一个sql解决方案?我可以问一下为什么使用
c#
asp.net
标记吗?这是一个关于SQL查询部分的非常有效的答案。然而,这是OP为了达到他/她想要的目的而应该解决的众多问题之一。如果唯一的问题是SQL查询,那么这应该是回答这个问题的答案。@Christos好吧,我在OP的帖子中看到的唯一问题是如何编写SQL查询??所以我相信这就是答案:)@Rafalon请找出标题并用c#code behind获得该值。然后在问题主体处,OP指的是仪表板。例如,如果我们有100个
EmpCode
,则有两个关于此仪表板的选项。我们将在一个屏幕中显示100个
EmpCode
,或者显示前10个(或者另一个
EmpCode
)。如果我们选择后一种方法,我们必须进行分页。还有两种选择,我们可以在数据库中执行(我推荐的方式),也可以在应用服务器中执行。等等。因此,您可以看到不止一件事。@rchau如果您唯一的问题是如何编写SQL查询,请编辑您的问题,并接受正确的答案。Thanks@Christos你是对的,但是我一般认为没有问句的句子是上下文(他想做所有这些事情),但他却坚持“我怎么写那个SQL查询?”。因此,我不知道如何批准删除帖子唯一问题的编辑…这是一个关于SQL查询部分的非常有效的答案。然而,这是OP为了达到他/她想要的目的而应该解决的众多问题之一。如果唯一的问题是SQL查询,那么这应该是回答这个问题的答案。@Christos好吧,我在OP的帖子中看到的唯一问题是如何编写SQL查询??所以我相信这就是答案:)@Rafalon请找出标题并用c#code behind获得该值。然后在问题主体处,OP指的是仪表板。例如,如果我们有100个
EmpCode
,则有两个关于此仪表板的选项。我们将在一个屏幕中显示100个
EmpCode
,或者显示前10个(或者另一个
EmpCode
)。如果我们选择后一种方法,我们必须进行分页。还有两种选择,我们可以在数据库中执行(我推荐的方式),也可以在应用服务器中执行。等等。因此,您可以看到不止一件事。@rchau如果您唯一的问题是如何编写SQL查询,请编辑您的问题,并接受正确的答案。Thanks@Christos你是对的,但是我一般认为没有问句的句子是上下文(他想做所有这些事情),但他却坚持“我怎么写那个SQL查询?”。因此,我想不出删除帖子唯一问题的编辑是如何被批准的。。。