我知道那里有类似的帖子,但是当我尝试在我自己的查询中使用其中任何一个时,我都无法让它发挥作用。
基本上,我想在ACCESS中使用SQL视图查询3个表。
最初虽然并且对于这个例子我只想用2来做。
tb1名称: 任务
需要tb1字段: 任务ID 任务标题 项目ID(这用于在最后获取项目标题,即上面提到的第3个表格)
tb2名称: 任务说明
需要tb2字段: 任务说明ID 任务说明日期 任务说明
使用设计视图发生的事情是,如果有关于Tasks表中的一个任务的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中我是新手。
非常感谢任何帮助
干杯
马修
答案 0 :(得分: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];
答案 1 :(得分:0)
尝试:
FROM tasks AS t
FROM [other table] AS tn
这是MS Access中的“SQL风味变体”......