虽然实际架构有点复杂,但以下内容对我来说应该更容易理解.
在一张桌子中,我有一份工作清单:
Job Status Open date Close date 1 Closed 04/29/2009 04/30/2009 2 Open 04/30/2009 3 Open 04/30/2009
..在另一个我有一个与工作相关的笔记列表:
ID Job Type Date Text 1 1 Open 04/29/2009 Please fix my printer 2 1 Close 04/30/2009 Printer fixed 3 2 Open 04/30/2009 Please fix my monitor 4 2 Update 04/30/2009 Part required 5 3 Open 05/01/2009 Please fix my mouse
每个作业都有一个"打开"注释,可选一个或多个"更新"注释,以及可选的"关闭"注释.在Job领域显然存在一对多的关系.
我想要的是一个单一的查询,它返回一个作业列表,打开日期,打开注释,如果有的话,还有结束注释,如下所示:
Job Status Open date Open note Close note 1 Closed 04/29/2009 Please fix my printer Printer fixed 2 Open 04/30/2009 Please fix my monitor 3 Open 04/30/2009 Please fix my mouse
我这样做的尝试总是失败,因为我最终得到以下结果:
Job Status Open date Open note Close note 1 Closed 04/29/2009 Please fix my printer 1 Closed 04/29/2009 Printer fixed 2 Open 04/30/2009 Please fix my monitor 2 Open 04/30/2009 3 Open 05/01/2009 Please fix my mouse 3 Open 05/01/2009
..要么:
Job Status Open date Open note Close note 1 Closed 04/29/2009 Please fix my printer 1 Closed 04/29/2009 Printer fixed 2 Open 04/30/2009 Please fix my monitor 3 Open 05/01/2009 Please fix my mouse
我在Access 2003中使用SQL,虽然最终的查询将来自Excel前端的ADO,但我现在只想在Access中使用它.
1800信息所说的内容,但如果没有谓词将连接限制为打开和关闭注释,则无法正常工作:
select a.job, a.status, a.opendate,
b.note as opennote, c.note as closenote
from job a
join note b on (a.job = b.job and b.type = 'Open')
left outer join note c on (a.job = c.job and c.type = 'Closed');
Run Code Online (Sandbox Code Playgroud)