0

Access 2007 データベースの Sql 文字列の設計を兄弟に手伝ってもらいました

   SELECT Employee.EmpID, Employee.Name, Sum(DateDiff("s",Punches.LogIN,Punches.LogOUT)) AS THours
FROM Punches INNER JOIN Employee ON Punches.EmpID=Employee.EmpID
GROUP BY Employee.Name, Employee.EmpID;

この SQL 文字列は、2 つのテーブル (Employee、Punches)、Employee's ID、Name、THours (Total Hours of work) からの情報を表示します。

サンプル結果:

EmpID   Name    THours
0001    Emp1    14560
0003    Emp3       13
0004    Emp4    43585

私の問題は、パンチテーブルにはまだ総労働時間を持っていないが、すでに従業員テーブルにある従業員も表示したいということです。

このような

EmpID   Name    THours
    0001    Emp1    14560
    0002    Emp2       0
    0003    Emp3       13
    0004    Emp4    43585

それを実現する方法はありますか?前もって感謝します..

4

2 に答える 2

2

使用する必要がありますLEFT JOIN

SELECT Employee.EmpID, Employee.Name, Sum(NZ(DateDiff("s",Punches.LogIN,Punches.LogOUT),0)) AS THours
FROM Employee 
LEFT JOIN Punches  
    ON Punches.EmpID=Employee.EmpID
GROUP BY Employee.Name, Employee.EmpID
ORDER BY Employee.EmpID;
于 2013-04-04T14:05:48.040 に答える