【发布时间】:2014-10-22 21:58:29
【问题描述】:
我需要为每个特定员工输出以下数据: employee_Id、employee_name、presence.year、presence.month、count(day)、sum(work hours)、sum(holiday hours)、[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
有人可以帮忙吗?
【问题讨论】:
-
你能给我们提供预期的结果吗?首先,从 GROUP BY 子句中删除
Presence.Dy, Presence.Hr, Presence.Holidays,您也可以从SELECT子句中删除DISTINCT。 -
需要这个表作为结果:oi60.tinypic.com/122c6xz.jpg
-
好的,您查询的当前结果是什么?您是否尝试过我提到的更正?
-
在 ID 列中显示我插入的那个,但在名称列中显示表中的所有其他员工姓名
-
这个问题的标题太可怕了。看起来你所做的只是向它抛出关键字和标签。