我需要按特定员工输出这些数据: employee_Id,employee_name,presence.year,presence.month,count(day),sum(工作时间),sum(假期),[work hours] - [holiday hours]。 我在vb6项目中使用了这个查询,但似乎效果不好:
SELECT
Employees.Employee_ID AS ID
, Employees.Full_Name AS Name
, Presence.Yr AS Year
, Presence.Mnth AS Month
, SUM(IIF(Presence.Dy, 1, 0)) Work_Days
, SUM(IIF(Presence.Hr, Presence.Hr, 0)) AS Work_Hours
, SUM(IIF(Presence.Holidays, Presence.Holidays, 0)) AS Holidays_Hours
, SUM(IIF(Presence.Hr, Presence.Hr, 0)) - SUM(IIF(Presence.Holidays, Presence.Holidays, 0) AS Total_Work_Hours
FROM Employees
INNER JOIN Presence ON Presence.Employee_ID = Employees.Employee_ID
WHERE Employees.Company = 'aCompany'
AND Employees.Employee_ID = 'anEmmployee'
GROUP BY Employees.Employee_ID, Employees.Full_Name, Presence.Yr, Presence.Mnth
如下图所示:http://oi60.tinypic.com/122c6xz.jpg
任何人都可以帮忙吗?
答案 0 :(得分:0)
以下是您的查询,并进行了一些调整:
SELECT
Employees.Employee_ID AS ID
, Employees.Full_Name AS Name
, Presence.Yr AS Year
, Presence.Mnth AS Month
, SUM(IIF(Presence.Dy, 1, 0)) Work_Days
, SUM(IIF(Presence.Hr, Presence.Hr, 0)) AS Work_Hours
, SUM(IIF(Presence.Holidays, Presence.Holidays, 0)) AS Holidays_Hours
, SUM(IIF(Presence.Hr, Presence.Hr, 0)) - SUM(IIF(Presence.Holidays, Presence.Holidays, 0) AS Total_Work_Hours
, SUM(Presence.Hr) / Employees.HoursPerDay + Employees.TotalAnnualHolidays - Employees.DoneHolidays AS AvailableHolidays
FROM Employees
INNER JOIN Presence ON Presence.Employee_ID = Employees.Employee_ID
WHERE Employees.Company = 'aCompany'
AND Employees.Employee_ID = 'anEmmployee'
GROUP BY Employees.Employee_ID, Employees.Full_Name, Employees.HoursPerDay, Employees.TotalAnnualHolidays, Employees.DoneHolidays, Presence.Yr, Presence.Mnth
您可以测试这个新查询,并告诉我有关结果的信息以及您要查找的内容的差异吗?
希望这会有所帮助。