Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB6 ms access sql查询不同计数两个表_Sql_Ms Access_Vb6_Dao - Fatal编程技术网

VB6 ms access sql查询不同计数两个表

VB6 ms access sql查询不同计数两个表,sql,ms-access,vb6,dao,Sql,Ms Access,Vb6,Dao,我需要为每个特定员工输出以下数据: 员工Id、员工姓名、出席时间.年、出席时间.月、计数(天)、总和(工作时间)、总和(假日时间),[工作时间]-[假日时间]。 我在vb6项目上使用了此查询,但似乎效果不好: SELECT Employees.Employee_ID AS ID , Employees.Full_Name AS Name , Presence.Yr AS Year , Presence.Mnth AS Month , SUM(II

我需要为每个特定员工输出以下数据: 员工Id、员工姓名、出席时间.年、出席时间.月、计数(天)、总和(工作时间)、总和(假日时间),[工作时间]-[假日时间]。 我在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
如图所示:


有人能帮忙吗?

这是您的查询,并做了一些调整:

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
你能测试这个新的查询并告诉我结果的信息以及与你所寻找的不同之处吗


希望这会有所帮助。

您能提供我们预期的结果吗?首先,从GROUP BY子句中删除
Presence.Dy、Presence.Hr、Presence.Holidays
,您也可以从
SELECT
子句中删除
DISTINCT
。需要将此表作为结果:确定,给出查询的当前结果是什么?你试过我提到的更正吗?在ID列中,它显示了我插入的一个,但在name列中,显示了表格中所有其他员工的姓名。这个问题的标题很可怕。看起来您所做的只是向它抛出关键字和标记。该查询似乎运行良好,但当涉及空值时,它会显示一个错误。如何避免空值或将其设置为0?我更新了查询以替换空值,您能测试它并告诉我它是否工作得更好吗?我在第一种情况下显示了语法错误。这个语法对ms access也起作用吗?我用IIF语句而不是大小写修复了它,但是当我运行软件时,它显示了一个错误:Object不支持这个属性或方法。结果显示在DBGrid中,但存在此错误。您能否使用新的查询和错误的详细信息更新您的问题?