【问题标题】:ms access query to join date table to Timesheet tablems 访问查询以将日期表连接到时间表表
【发布时间】:2017-08-26 07:25:00
【问题描述】:

我的最终结果是一份包含多个员工的报告,其中包括某个日期范围内的工作天数。在我的报告中,无论员工是否工作,我都需要在报告中显示范围内的所有日期。

所以我有一个表格,其中包含每个 empl 的工作日期和小时数。我还创建了一个日期很远的表格。我想我需要一个查询来连接这两个表并将所有日期放在日期范围内——这将被提示。添加到员工工作时间表中。

有没有人知道如何加入这些表格并获取将提示的两周范围内每位员工的所有日期?

第一个表 Dates 只有 1 列包含未来的日期。

第二个表有 Empl 名称、工作日期和工作时间。

【问题讨论】:

标签: ms-access join


【解决方案1】:

您将需要使用嵌套查询(也称为子查询)来创建员工和日历日的所有组合,然后您可以对第二个表(时间表表)进行左侧操作。

select *
from (select distinct empl_name, cal_date from first_tbl, second_tbl
      where cal_date between [start date] and [end date]) as nested
left join second_tbl
    on  nested.empl_name = table_2.empl_name
    and nested.cal_date = table_2.work_date

【讨论】:

  • 感谢您的回复。到目前为止,下面的代码有点工作,但提示输入 empl_name 和 cal_date(出于某种原因) - 以及预期的结束日期,但没有开始日期。如果我在提示中除了将日期放在结束日期之外什么都没有,它会返回 TotHoursQuery 中的原始数据,并将 empl_name 和 cal_date 字段添加到视图中,其中没有任何内容。下面是我的代码..
  • SELECT * FROM (SELECT DISTINCT Nested.empl_name, Nested.cal_date FROM Dates, TotHoursQuery WHERE Nested.cal_date between [start date] and [end date]) AS Nested LEFT JOIN TotHoursQuery ON (Nested.cal_date = TotHoursQuery.[开始日期]) AND (Nested.empl_name = TotHoursQuery.[Full Name]);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-07
  • 1970-01-01
相关资源
最近更新 更多