【问题标题】:Access Joined Table Latest Record访问已加入表的最新记录
【发布时间】:2013-05-26 08:20:16
【问题描述】:

我有这个数据库架构,如附图所示,我需要以某种方式将tblDdiNumberstblTransactions 连接起来,仅显示来自tblTransactions 的最新记录,并且没有重复的ddi_numbers。

基本上我要做的是根据事务表中的信息显示已分配和未分配的 ddi_numbers。

所以如果 ddi_number X 在事务表中有一个条目,我可以确定它已被使用并且不再空闲。

或者您认为在tblDdiNumber 表中保存我想要的信息的外键可能更好吗?

【问题讨论】:

  • 这是我目前拥有的 SELECT tblTransactions.ddi_id, Last(tblTransactions.trans_dt) AS MaxOftrans_dt, tblDdiNumbers.ddi_number, tblTransactions.main_customer_id FROM tblDdiNumbers INNER JOIN tblTransactions ON tblDdiNumbers.ddi_id = tblTransactions.ddi GROUP BY tblTransactions.ddi_id, tblDdiNumbers.ddi_number, tblTransactions.main_customer_id 但它为每个 ddi_id 返回多行

标签: ms-access vba ms-access-2007


【解决方案1】:

您要查找的“最新行”可能由该查询给出。 (在不知道密钥的情况下,我不会打赌。编辑您的问题以包含密钥。)

select ddi_id, max(trans_date) latest_date
from tblTransactions
group by ddi_id

如果该查询返回多于一行,那么您的表结构可能不支持您尝试执行的操作。

无论如何,您可以像这样加入该查询

select t1.*, t3.ddi_number
from tblTransactions t1
inner join (select ddi_id, max(trans_date) latest_date
            from tblTransactions
            group by ddi_id) t2
        on t1. ddi_id = t2.ddi_id
       and t1. trans_date = t2.latest_date
inner join tblDdiNumbers t3
        on t3.ddi_id = t2.ddi_id

【讨论】:

  • 那不行,我想最简单的方法就是更改表架构,感谢您的尝试
猜你喜欢
  • 1970-01-01
  • 2010-10-27
  • 2012-01-06
  • 2018-07-23
  • 2011-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多