データベースに3つのテーブルがあります。SQL Serverクエリの類似した従業員の時間の合計
最初の表は、Employee
次のとおりです。
第二表がEmployeeTimeIn
である:(HoursConsumedは、秒単位での時間を持っている!)
第三表がEmployeeTimeOut
次のとおりです。
私はそのIDによってグループ化されたすべての従業員を一覧表示し、セッション内の各時間の作業時間、次のSQLクエリを書いた:
select
v.EID, e.EmployeeName, v.Time_In, v.Time_Out,
convert(varchar(5), SUM(v.HoursConsumed)/3600) + ':' +
convert(varchar(5), SUM(v.HoursConsumed) % 3600/60) + ':' +
convert(varchar(5), (SUM(v.HoursConsumed) % 60)) as workingtime,
v.Date_Ref
from
(select
e1.EID, e1.Time_In, e2.Time_Out, e1.HoursConsumed,
CONVERT(VARCHAR(10), e1.Date_Ref, 111) as Date_Ref
from EmployeeTimeIn as e1, EmployeeTimeOut as e2
where e1.Refid = e2.Refid) as v, Employee as e
where v.EID = e.EmployeeID
group by
v.EID, e.EmployeeName, v.Time_In, v.Time_Out, v.HoursConsumed, v.Date_Ref;
それは次の出力を生成します。
私はこのクエリを変更して、従業員ごとに総稼働時間をworkingtime
列に表示する必要があります。このシナリオでは、EID 4の場合はworkingtime
が0:41:53、EID 200の場合は0:0:39と表示されます。
(注:!最終的な出力は、私はあまりにも時間とタイムアウトファイナルテーブルのフィールドを表示する必要があるため、この例のデータのための3つの行を持つべきである)第四として
明示的に使用してくださいではなく、「テーブル、テーブル」構文よりも加わります。 – pilcrow
こんにちは@Nida Sulheri私は同じ問題に直面しています。あなたは私にテーブル構造を提供してもらえますか、同じものを使用してください、私は私のプロジェクトで同じロジックを実装する必要があります。よろしくご連絡ください –
@ A.Goutamテーブルの構造は私の上記ポストに記載されて...テーブルのスクリーンショットを参照してください。 – Azeem