在Access 2010中检索“视图”

时间:2013-11-16 21:31:30

标签: sql ms-access-2010 erd

我的SQL代码:

    SELECT EmpLastName +', '+ EmpFirstName AS ProgramSupervisorName, TeamNo
    FROM Employee, Salary, ProgramSupervisor
    WHERE Employee.EmpNo = Salary.EmpNo
    AND Salary.EmpNo = ProgramSupervisor.EmpNo
    ORDER BY TeamNo

我意识到Access不支持创建视图。我遇到的问题是我希望通过ProgramSupervisor名称对员工进行分组,但程序主管和员工都是员工表的一部分。不同类型的员工通过他们的PosNo区分,员工通过一系列表格(每小时 - > ISL< --- ProgramSupervisor)属于ProgramSupervisors。话虽这么说,我不能在一个SELECT语句中引用ProgramSupervisorName和EmpName AS重命名的字段,因为它们来自同一个表,由它们的positionNo区分。我希望我可以创建一个查询或“视图”,就像上面的代码一样,负责从employee表中提取ProgramSupervisor名称,然后在另一个查询中使用该视图。在另一个查询中,我可以使用代码:“EmpLastName +','+ EmpFirstName AS EmpName。”我在网上搜索过的页面太过模糊,因为我的理解有限,所以请简单解释一下。我也会尝试澄清任何混乱。我将包含我的ERD,以便您可以看到我来自哪里:

enter image description here

编辑:目前为止的查询

   SELECT EmpLastName +', '+ EmpFirstName AS EmpName, ProgramSupervisorName, 
   ProgSupName.TeamNo          
   FROM Employee, ISL, Hourly, Salary, ProgramSupervisor, ProgSupName
   WHERE Employee.EmpNo = Hourly.EmpNo
   AND Hourly.ISLNo = ISL.ISLNo
   AND Employee.EmpNo = Salary.EmpNo
   AND Salary.EmpNo = ProgramSupervisor.EmpNo
   AND ProgramSupervisor.EmpNo = ISL.ProgramSupervisor_EmpNo
   ORDER BY ProgSupName.TeamNo

如果我已经在ProgSupName查询中完成了这些表,是否需要关联这些表?

2 个答案:

答案 0 :(得分:1)

  

我意识到Access不支持创建视图。

对于记录,Access确实支持创建已保存的查询,这些查询只是另一个名称的“视图”。 (实际上,Access SQL DDL的OLEDB变体确实支持CREATE VIEW作为创建已保存查询的方法。)

答案 1 :(得分:0)

回答这个问题的关键在于两个部分:

第一种是使用Access存储的查询,如视图。这已在这里得到解答。

第二个是在使用不同列或表别名的查询中两次引用同一个表。在你问到的另一个问题的正确答案中已经回答了这个问题,在这里问: Displaying the same fields AS different names from the same table -Access 2010

结合这两个答案,你就有了解决方案。