Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用“时按分组”;“在什么情况下”;陈述_Sql_Sql Server_Group By_Case When - Fatal编程技术网

Sql 使用“时按分组”;“在什么情况下”;陈述

Sql 使用“时按分组”;“在什么情况下”;陈述,sql,sql-server,group-by,case-when,Sql,Sql Server,Group By,Case When,我试图在下面的sql语句中按名称分组。同一名字可以多次输入系统。我想按行分组,按人名(FirstName)计算短时间内的总小时数 谢谢,只需在聚合函数中添加计算,如- select FirstName, case when managers.title = 'GM' then SUM(isnull([TotalSalaryHours],0))-90 when managers.title = '1st' then SUM(isnull([RegHours],0)+isnull([OTHours

我试图在下面的sql语句中按名称分组。同一名字可以多次输入系统。我想按行分组,按人名(FirstName)计算短时间内的总小时数


谢谢,

只需在聚合函数中添加计算,如-

select FirstName,
case 
when managers.title = 'GM' then SUM(isnull([TotalSalaryHours],0))-90
when managers.title = '1st' then SUM(isnull([RegHours],0)+isnull([OTHours],0)
                                +isnull([PTO],0)+isnull([HolidayHours],0))-70

 End As Over_Short
 from Hours
 join Managers on managers.Manager_id = hours.manager_id
 group by  
 FirstName

不清楚您的问题是什么,您正在按照
SELECT
列表中没有的许多字段以及不同的
CASE
语句进行分组。您想要的输出是什么?基于非标准的
[…]
引用样式添加了
sql server
标记。这是有效的,但让我直截了当地了解它。您必须使用总和、平均值等,以便按功能分组?现在,而不是一个人的总小时数-90,因为他们的时间太短。它使用每一行-90,因此它会使总数膨胀。我需要做的情况下,当函数后,集团的总和。现在正在做这件事。是的。。在查询中,基本上是按名字分组,然后需要告诉查询引擎如何处理查询中的其他列。。引擎并不认为您需要将它们相加。哎呀。。是的,修好了。
select FirstName,
case 
when managers.title = 'GM' then SUM(isnull([TotalSalaryHours],0))-90
when managers.title = '1st' then SUM(isnull([RegHours],0)+isnull([OTHours],0)
                                +isnull([PTO],0)+isnull([HolidayHours],0))-70

 End As Over_Short
 from Hours
 join Managers on managers.Manager_id = hours.manager_id
 group by  
 FirstName