1

我正在尝试编写一个查询来检索一些列(真是令人惊讶!)。除了简单的查询,尤其是在 Access 中,我对任何事情都很害怕。下面是 Access 中查询设计器的图像。

在此处输入图像描述

底部的字段是我希望拉回的字段。project_master.ContactDesigner 是contacts.ContactID 的外键。我想获取 ID 2、3 和 4 的 MilestoneNames 列表。然后说,例如,MilestoneID 2 有一个项目启动的 MilestoneName,我想记录尽可能多的具有开始和结束日期的项目在该 MilestoneID 的 project_milestone_dates 中,并列出与外键 project_master.ContactDesigner 相关联的每条记录的联系人姓名。例如,这只需要抓取 ProjectPriority 为 2 的记录。

不确定这是否清楚,因为我很难解释我在这里寻找的内容,但我缺少标准,甚至可能缺少一些我需要添加到查询中的 ID?我迷路了。当前设计在列中不返回任何内容。

SELECT milestone_def.milestonename, 
       contacts.firstname, 
       priority_def.priorityname, 
       project_milestone_dates.startdate, 
       project_milestone_dates.enddate, 
       milestone_def.milestonedefid 
FROM   (project_milestone_dates 
        INNER JOIN (priority_def 
                    INNER JOIN (contacts 
                                INNER JOIN project_master 
                                        ON ( contacts.contactid = 
                                             project_master.contactdesigner )) 
                            ON priority_def.prioritydefid = 
                               project_master.projectpriority) 
                ON project_milestone_dates.projectid = 
                   priority_def.prioritydefid) 
       INNER JOIN milestone_def 
               ON project_milestone_dates.milestoneid = 
                  milestone_def.milestonedefid 
WHERE  ( ( ( project_master.projectpriority ) = [@priority] ) 
         AND ( ( milestone_def.milestonedefid ) = 5 
                OR ( milestone_def.milestonedefid ) = 6 
                OR ( milestone_def.milestonedefid ) = 7 ) ); 

将其更改为 5 或 6 或 7 应该是这样。

编辑*

我已经删除了行AND (contacts.ContactID = project_master.ContactOwner),因为我在查询中不需要它。

4

1 回答 1

1
project_milestone_dates.ProjectID = priority_def.PriorityDefID

这看起来像一个糟糕的加入。

不应该吗:

project_milestone_dates.ProjectID = priority_def.projectid

移动 project_milestone_date 表,使其直接连接到 project_master,而不是 priority_def

于 2013-07-18T18:01:46.437 回答