gpt4 book ai didi

mysql - 选择与总和不同

转载 作者:行者123 更新时间:2023-11-30 22:12:01 25 4
gpt4 key购买 nike

有一个员工表,其中包含每天每人重新排序的条目。

我创建了这个查询并且它有效,但它不是过去一周的总工作时间,而是员工自时间开始以来的总工作时间的总和。

有人能帮忙吗?我搞不清楚了。谢谢。

SELECT SSN, firstname, Lastname, SUM(CAST(Hours as float)) AS HourstoDate 
FROM Employees
WHERE CAST(Scheduled as datetime) >= DateAdd( d, DateDiff( d, 0, GetDate()-5 ), 0 )
GROUP BY SSN, Lastname, FirstName

SSN FirstName LastName Scheduled Hours
1234 Jane Doe Monday 9/26 10
1234 Jane Doe Tuesday 9/27 10

它应该拉出 Jane 的条目,因为她本周工作,但小时数必须是 1525,而不是她本周工作的 20。

最佳答案

查询无效,因为您在同一个表上将两个搜索合并为一个。您不能在搜索特定日期之后的记录的同时检索从时间开始的所有记录。

在这些情况下,我的方法是将表与自身连接起来。理想情况下,它应该是这样的:

select
z.ssn
, z.firstname
, z.lastname
, sum ( cast ( eo.hours as float ) ) as hourstodate
from (
select distinct
ei.ssn
, ei.firstname
, ei.lastname
from
employees ei
where
cast ( ei.scheduled as datetime ) > dateadd ( ei.d , datediff ( ei.d , 0 , getdate() - 5 ) , 0 )
) z
join employees eo on ( z.ssn = eo.ssn and z.firstname = eo.firstname and z.lastname = eo.lastname )
group by
z.ssn
, z.lastname
, z.firstdate

我不能尝试,所以我不能保证它会起作用。如果返回错误,请随时添加评论。

编辑:输入错误

关于mysql - 选择与总和不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39799578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com