私はまだ解決できていないこの問題を抱えています。簡単にするために、すべてのユーザーがプロジェクトごとに作業時間を入力する必要があるこの 1 つのテーブルがあります。
私の目標は、今年のすべてのプロジェクトで最も多くの時間を一緒に働いたすべての従業員を見つけることです。私は、彼らがどのプロジェクトに取り組んだかには興味がありません。最も多くの時間を一緒に過ごした従業員だけです。
私が使用しなければならないテーブルを明確にするために:
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 人あたりの合計時間は次のようになります。従業員 1 の合計時間 = 2+1+1、従業員 2 の合計時間 = 4+3、従業員 3 の合計時間 = 1+2、従業員 4 の合計時間 = 1
共有時間は、従業員 1 と 2 の共有時間 = 3、従業員 2 と 3 の共有時間 = 1、従業員 1 と 3 の共有時間 = 2 などです。
これを実現する方法を知っている人はいますか?
よろしく、 ヨハン