【问题标题】:Use a date within a query to select which monthly table to query在查询中使用日期来选择要查询的月度表
【发布时间】:2017-02-09 04:15:06
【问题描述】:

我是新手,正在寻求帮助

在 ACCESS 内 (在错综复杂的映射表网络中)

我有一个批准表,上面有它们的设置日期。

我有一份价值长达数年的单独的每月人力资源员工名单,这些名单是快照,包括直线经理的等级和人们的工作地点等。

我需要带回每个人申请批准之日的位置。

换一种说法?

我在一张表中有一系列 [approval.dates] 可以追溯到 3 年前(我只对前 12 个月感兴趣) 我需要搜索每个批准日期的 [月度报告] 并在该日期带回 [monthlyreport.location]。

每个批准日期只能匹配一个月而不是特定日期。

有条件地选择要引用哪个表是我可以说的最简洁的方式。

感谢您的阅读,我希望它有点意义。

【问题讨论】:

  • 欢迎来到 SO。请重写您的帖子以包含示例数据、您自己尝试过但发现不起作用的内容以及您期望的结果。
  • 我花了很长时间来理解所涉及的数据集,这里需要一篇文章来解释。 “加入左侧负载并忽略”是我需要听到的。

标签: sql date ms-access conditional


【解决方案1】:

你不能“条件连接”,但你可以用左连接加入一堆东西并忽略错误的东西。

你没有提供你案件的细节,所以我会弥补:

select coalesce(jan.field, feb.field, mar.field, ... dec.field, 0) as result
from atable a
left join jan on a.id = jan.id and a.month = 'jan'
left join feb on a.id = jan.id and a.month = 'feb'
left join mar on a.id = jan.id and a.month = 'mar'
-- ...
left join dec on a.id = jan.id and a.month = 'dec'

这将检索 atable.month 中引用的特定月份的月份表的“字段”列。

【讨论】:

  • 感谢我试图破译我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-15
  • 2017-12-31
  • 2012-03-05
  • 2013-04-22
  • 1970-01-01
  • 2017-10-12
  • 2020-07-30
相关资源
最近更新 更多