VB6 ms访问sql查询明显统计两个表

时间:2014-08-28 22:24:29

标签: sql ms-access vb6 dao

我需要按特定员工输出这些数据: 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

任何人都可以帮忙吗?

1 个答案:

答案 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

您可以测试这个新查询,并告诉我有关结果的信息以及您要查找的内容的差异吗?

希望这会有所帮助。