gpt4 book ai didi

sql - 来自两个连接表的不同记录,一个 "distinct"字段,控制日期

转载 作者:行者123 更新时间:2023-12-04 16:09:45 24 4
gpt4 key购买 nike

Access 2007

TableA  
IDx Filename

TableB
IDy Date Name

表 B 中有更多字段,但这应该可以。
IDy 不是唯一的,可能有重复项。IDx 是唯一的,没有重复。

我从什么开始:

 SELECT TableA.IDx, TableA.Filename, TableB.Date, TableB.Name  
FROM TableA LEFT JOIN TableB ON TableA.IDx = TableB.IDy

我想去的地方:
(正如我在另一个问题中所述,我认为该问题过于笼统而无法回答意图。我无法将选定的答案转换为使用两个表,也无法在分配的空间中添加评论以更详细地重新提出问题.)

如果 IDx=IDy 产生重复项,则基于 TableA.ID 的不同记录列表以及基于 TableB.Date 的来自 TableB 的最新记录。

我希望这是可以理解的。

最佳答案

这样的事情应该可以解决您的问题:

SELECT a.IDx, a.Filename, b1.Date, b1.Name
FROM ((TableA AS a)
LEFT JOIN TableB AS b1 ON a.IDx = b1.IDy)
LEFT JOIN TableB AS b2 ON b1.IDy = b2.IDy AND b1.Date < b2.Date
WHERE b2.IDy IS NULL

TableB 的输出限制为仅具有每个 IDy 的最新 Date 的行是通过一个狡猾的设备完成的,它涉及将 TableB 连接回自身并搜索对于任何给定 Date 没有比该日期更大(更晚)的日期的行。

原来,它与 John Gibb 的解决方案基本相同,只是它涉及 LEFT JOIN(第二个)+ WHERE key IS NULL 而不是 NOT存在

关于sql - 来自两个连接表的不同记录,一个 "distinct"字段,控制日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5670019/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com