2009-07-21 71 views
0

我知道有类似的帖子在那里带回只有一个行的连接表,但是当我试图使用其中的任何以我个人的查询,我不能得到它的工作。使用的MS Access

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

最初虽然和这个例子,我想只用2

TB1名做到这一点: 任务

TB1领域想: 任务ID 任务标题 项目ID(这是要用于抢项目标题底,即第三台如上所述)

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]) 
; 

我得到这个语法错误,但以往的化身也给我留下了套牢。

我正常发展外PHP访问的和/ ASP它是好的,但是在ACCESS我是一个新手。

任何帮助,将不胜感激

干杯

马修

回答

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]; 
+0

嗨 什么是TaskNoteIDS在上面的示例中? 这是一个错字,或者它是一个临时表。我得到这个语法错误,然后当我尝试使用[任务备注],而它仍然给我语法错误(这真的是无益的MS) 干杯 马修 – 2009-07-22 13:46:09

+0

TaskNoteIDS是一个子选择。尝试这种 SELECT * FROM ( 任务AS吨INNER JOIN ( SELECT [任务注释]。[任务ID],MAX([任务注释]。[Task Notes Date])AS [MaxDate] FROM [任务注释] GROUP BY [任务注释]。[Task ID] )AS TaskNoteIDS ON t。[Task ID] = TaskNoteIDS。[Task ID] )INNER JOIN (TaskNoteIDS.MaxDate = [Task Notes]。[Task Note Date])AND([Task Notes]。[Task ID] = TaskNoteIDS。[Task ID]); [Task Notes] ON – 2009-07-22 14:45:24

0

尝试:

FROM tasks AS t 
FROM [other table] AS tn 

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