8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

如何查询第一个表中的所有 ID,其中最后一个事件和第二个表上的第一个日期与第一个表有一对多关系?

Tommy 2月前

15 0

我试图从两个一对多相关的表中检索(Subattivita.ID-Eventi-IDSubattivita),第一个表中的一些字段和第二个表中的另外两个字段(最后一个 Eventi.Evento 和第一个

我正在尝试从两个一对多相关的表(Subattivita.ID-Eventi-IDSubattivita)中检索第一个表中的某些字段以及第二个表中的另外两个字段(最后一个 Eventi.Evento 和第一个 Eventi.DataInserimento)。

我不知道为什么以下 SQL 查询会出现错误。有人可以帮忙吗?

第一表:Subattivita

ID 内容
1 审判
2 Prova2
3 排练3
4 prova4
5 Prova5
6 普罗瓦6
7 普罗瓦7
9 创建绘图
10 试验8

第二个表:事件

ID ID子活动 事件 评论 数据采集
1 1 打开 自动插入 2024 年 1 月 8 日
2 2 打开 自动插入 2024 年 1 月 8 日
3 3 打开 自动插入 2024 年 1 月 8 日
4 4 打开 自动插入 2024 年 1 月 8 日
5 5 打开 自动插入 2024 年 2 月 8 日
8 6 打开 自动插入 2024 年 2 月 8 日
9 7 打开 自动插入 2024 年 2 月 8 日
12 9 打开 自动插入 2024 年 2 月 8 日
十三 10 打开 自动插入 2024 年 2 月 8 日
14 1 评论 测试1 2024 年 5 月 8 日
15 2 评论 Testo2 2024 年 5 月 8 日
16 3 评论 德图3 2024 年 6 月 8 日
17 4 评论 Testo4 2024 年 6 月 8 日
18 5 评论 测试5 2024 年 7 月 8 日
19 6 评论 Testo8 2024 年 8 月 8 日
20 7 评论 德图9 2024 年 9 月 8 日
21 9 评论 测试12 2024 年 9 月 8 日
22 9 评论 继续绘图。 2024 年 9 月 8 日
23 9 已加载 设计已加载。 2024 年 9 月 8 日
24 9 关闭 批准的设计 2024 年 9 月 8 日

所需查询结果:

ID 最后的事件 第一数据统计
1 评论 2024 年 1 月 8 日
2 评论 2024 年 1 月 8 日
3 评论 2024 年 1 月 8 日
4 评论 2024 年 1 月 8 日
5 评论 2024 年 2 月 8 日
6 评论 2024 年 2 月 8 日
7 评论 2024 年 2 月 8 日
9 关闭 2024 年 2 月 8 日
10 打开 2024 年 2 月 8 日

我尝试使用以下 SQL 查询,但 Access 要求输入 u.Evento 值:

SELECT 
    t.ID, 
    u.Evento as LastEvento, 
    p.DataInserimento as FirstDataInserimento
FROM 
    ((Subattivita t
INNER JOIN 
    (SELECT IDSubattivita, MAX(ID) as MaxID FROM Eventi GROUP BY IDSubattivita) u ON t.ID = u.IDSubattivita)
INNER JOIN 
    (SELECT IDSubattivita, MIN(ID) as MinID FROM Eventi GROUP BY IDSubattivita) p ON t.ID = p.IDSubattivita);

Access message:

帖子版权声明 1、本帖标题:如何查询第一个表中的所有 ID,其中最后一个事件和第二个表上的第一个日期与第一个表有一对多关系?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Tommy在本站《ms-access》版块原创发布, 转载请注明出处!
最新回复 (0)
  • kelq 2月前 0 只看Ta
    引用 2

    那不是错误消息。这是查询提示输入值,因为查询引用了数据集中没有的字段 - 正如@TimRoberts 所指出的。看起来你想要每个 IDSubattivita 的 Min(DataInserimento)。提取与每个 IDSubattivita 的最大 ID 相关的 Evento 更为复杂。考虑:

    SELECT Q.IDSubattivita, Evento AS LastEvento, FirstDataInserimento FROM Eventi INNER JOIN 
        (SELECT Eventi.IDSubattivita, Max(Eventi.ID) AS EID, 
         Min(Eventi.DataInserimento) AS FirstDataInserimento FROM Eventi
         GROUP BY Eventi.IDSubattivita) AS Q 
    ON Eventi.ID=Q.EID;
    

    或者这个版本:

    SELECT Subattivita.ID, Contenuto, 
       (SELECT TOP 1 Evento FROM Eventi AS Dup 
        WHERE IDSubattivita=Subattivita.ID ORDER BY ID DESC) AS LastEvento, 
       (SELECT TOP 1 DataInserimento FROM Eventi AS Dup WHERE 
        IDSubattivita=Subattivita.ID ORDER BY ID) AS FirstDataInserimento
    FROM Subattivita;
    
  • 嗨 June7,非常感谢您的帮助(两个问题回答两次!)。现在看起来非常简单和明显,但我一直无法找到正确的 SQL 查询。

返回
作者最近主题: