【发布时间】:2013-03-28 20:34:36
【问题描述】:
我靠运气和胶带建立了一个数据库来处理一些员工数据。我每月收到一个包含以下字段的大型 Excel 电子表格:
员工编号、会计月份、项目代码、工作小时数
我构建了查询/表格来链接员工编号和员工姓名等内容。一切都很好。
我遇到的问题,这可能是因为除了一些 1 天的课程之外,我没有任何编程背景,是我希望它在没有工作时间的情况下返回结果。
举一个具体的例子 - 假设我们有一个名为 Project Pasta 的项目。在三月份,没有人在 Project Pasta 上工作任何时间。但是,当我运行每个项目的所有工作时间的报告时,我希望 Project Pasta 在生成的电子表格的第二列中仍然显示为“0”。
我尝试了各种形式的左外连接,但我不知道如何获得“空”返回,此时我对 Access 和我自己感到非常恼火,我想我会寻求帮助。
我会回答任何人的任何问题,但我不能 100% 确定人们需要知道什么才能提供帮助。它是 Windows XP 上的 Microsoft Access 2007,物有所值。
谢谢! :)
我现在按经理分组的查询:
SELECT timeworked.fiscalmonth,
timeworked.projectcode,
kronoscodes.projectname,
SUM(timeworked.hoursworked) AS SumOfHoursWorked,
employees.manager
FROM employees
INNER JOIN ((kronoscodes
INNER JOIN timeworked
ON kronoscodes.projectcode = timeworked.projectcode)
INNER JOIN months
ON timeworked.fiscalmonth = months.fiscalmonth)
ON employees.[employee id] = timeworked.employeeid
GROUP BY timeworked.fiscalmonth,
timeworked.projectcode,
kronoscodes.projectname,
employees.manager
HAVING (( ( timeworked.fiscalmonth ) LIKE "janfy13" ));
列名是:
EmployeeID,
ProjectCode,
ProjectName,
HoursWorked,
FiscalMonth
所以基本上我希望每个财政月都返回每个项目代码,即使在我导入的数据中“工作时间”下没有任何内容。
【问题讨论】:
-
“海量 Excel 电子表格”和“一切顺利”不属于同一上下文。
-
您需要查询设计窗口和左连接。例如
SELECT ProjectID, ProjectName, Hours FROM Projects LEFT JOIN EmployeeHours ON Projects.ProjectID = EmployeeHours.ProjectID现在,您将需要显示足够的样本数据,以便人们可以合理地产生这样的查询。您需要将庞大的电子表格制作成这样的表格。 -
我已将其分解为表格 - 一张用于员工 ID 和姓名,一张用于会计月份,一张用于项目代码,一张用于工作时间。不过,我会试试你发布的内容,然后再报告!
-
您能分享一下您目前的查询吗?表格定义(列名引用)也会有所帮助。
-
我在原帖中添加了代码。