0

我知道那里有类似的帖子,但是当我尝试在自己的查询中使用它们中的任何一个时,我无法让它工作。

基本上,我想使用 SQL 视图在 ACCESS 中查询 3 个表。

最初,对于这个例子,我试图只用 2.

tb1 名称:任务

tb1 想要的字段:Task ID Task Title Project ID(这个是用来抓取最后的项目标题,即上面提到的第3张表)

tb2 名称:任务笔记

需要的 tb2 字段: 任务注释 ID 任务注释日期 任务注释

使用设计视图发生的情况是,如果有 3 个注释,例如与任务表中的一项任务相关,它会列出所有 3 个任务注释。

我想要做的是只显示最后输入的任务注释,无论是[任务注释ID]还是[任务注释日期]。

我现在剩下的,从这里的帮助构建的是以下 SQL 语句:

SELECT 

t.[Task ID], 
t.[Task Title], 
t.[Project ID],
tn.*

FROM
Tasks t

INNER JOIN [Task Notes] tn ON t.[Task ID] = tn.[Task ID]

WHERE tn.[Task ID] = 
  (SELECT max(tn.[Task Note Date]) FROM tn where tn[Task ID] = t.[Task ID])
;

我遇到了语法错误,但以前的化身也让我陷入困境。

我通常在 ACCESS 之外开发,在 php/asp 中很好,但是在 ACCESS 我是新手。

任何帮助将不胜感激

干杯

马修

4

2 回答 2

1

尝试这样的事情

SELECT t.[Task ID], 
       t.[Task Title], 
       t.[Project ID],
       tn.*    
  FROM Tasks t 
       INNER JOIN
       (
          SELECT [Task ID], 
                 MAX([Task Note Date]) MaxDate
            FROM [Task Notes] 
           GROUP 
              BY [Task ID]
       ) TaskNoteIDS 
          ON t.[Task ID] = TaskNoteIDS.[Task ID] 
       INNER JOIN [Task Notes] tn 
          ON TaskNoteIDS.[Task ID] = tn.[Task ID]
             AND TaskNoteIDS.MaxDate = [Task Notes].[Task Note Date];
于 2009-07-21T14:45:19.927 回答
0

尝试:

FROM tasks AS t
FROM [other table] AS tn

这是在 MS Access 中发现的“SQL 风格变体”...

于 2009-07-21T14:54:43.000 回答