Sql 使用“时按分组”;“在什么情况下”;陈述
我试图在下面的sql语句中按名称分组。同一名字可以多次输入系统。我想按行分组,按人名(FirstName)计算短时间内的总小时数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
谢谢,只需在聚合函数中添加计算,如-
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