我有这个问题,我还不能解决。为了简单起见,有一张表,所有用户都必须在其中输入每个项目的工作时间。
我的目标是找到所有这些年来项目中一起工作时间最长的员工。我对他们本身从事哪些项目不感兴趣,只对那些花费最多时间在一起的员工感兴趣。
为了澄清我必须使用的表格:
CREATE TABLE [dbo].[table-hours](
[id] [int] IDENTITY(1,1) NOT NULL,
[projectid] [int] NOT NULL,
[employeeid] [int] NOT NULL,
[timediff] [float] NOT NULL,
CONSTRAINT [PK_table-hours2] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
一些用于填充此表的示例数据:
insert into dbo.[table-hours] (projectid, employeeid, timediff) values (1,1,2.0)
insert into dbo.[table-hours] (projectid, employeeid, timediff) values (1,2,4.0)
insert into dbo.[table-hours] (projectid, employeeid, timediff) values (1,3,1.0)
insert into dbo.[table-hours] (projectid, employeeid, timediff) values (2,1,1.0)
insert into dbo.[table-hours] (projectid, employeeid, timediff) values (2,2,3.0)
insert into dbo.[table-hours] (projectid, employeeid, timediff) values (2,4,1.0)
insert into dbo.[table-hours] (projectid, employeeid, timediff) values (3,1,1.0)
insert into dbo.[table-hours] (projectid, employeeid, timediff) values (3,3,2.0)
在这种情况下,每位员工的总小时数应为:员工 1 总小时数 = 2+1+1,员工 2 总小时数 = 4+3,员工 3 总小时数 = 1+2,员工 4 总小时数 = 1
共享时间为:员工 1 和 2 共享时间 = 3,员工 2 和 3 共享时间 = 1,员工 1 和 3 共享时间 = 2,等等...
有谁知道如何实现这一点?
问候,约翰