我的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,以便您可以看到我来自哪里:
编辑:目前为止的查询
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查询中完成了这些表,是否需要关联这些表?
答案 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
结合这两个答案,你就有了解决方案。