1

我有 4 个需要的字段 ->

  1. 用户身份
  2. 地点
  3. REPORT_MGR_USERID(报告经理用户 ID)
  4. 经理位置(实际上并未存储)

要获得第 4 个,我需要使用 SQL 构建它。我可以通过“USERID”和“LOCATION”字段来做到这一点。

这是我的尝试。我正在通过链接的 DB2 表在 Access 2007 中运行查询。

SELECT DISTINCT employee_table.LOCATION, employee_table.USERID, employee_table.REPORT_MGR_USERID,  manager_location 
FROM employee_table main
JOIN  employee_table (SELECT DISTINCT employee_table.LOCATION FROM employee_table AS sub WHERE sub.USERID = main.REPORT_MGR_USERID) manager_location

当我运行它时,它给了我这个错误->

Syntax error in FROM clause

然后突出显示 JOIN 关键字。

从我看过的所有内容来看,这看起来都是正确的......

编辑:

感谢 David W,这是供将来参考的工作版本->

SELECT DISTINCT main.LOCATION, main.USERID, main.REPORT_MGR_USERID,  manager_data.LOCATION 
FROM employee_table main
INNER JOIN employee_table manager_data
ON main.REPORT_MGR_USERID=manager_data.USERID
4

2 回答 2

2

您在第一个 JOIN 子句中同时指定了表名employee_table和子选择。(SELECT DISTINCT....)并且没有 ON 条件,尽管这可能是您想要的?

该 JOIN 中的规范employee_table可能只是一个错字,因为您为子选择提供了别名...

编辑灯泡刚刚亮起,我了解 OP 想要什么。开始了:

SELECT DISTINCT main.LOCATION, main.USERID, main.REPORT_MGR_USERID, manager_data.manager_location 
   FROM employee_table main
   INNER JOIN employee_table manager_data
     on main.REPORT_MGR_USERID=manager_data.USERID
于 2012-10-01T18:07:08.423 回答
1

Access db 引擎无法识别JOININNER JOIN. 任何时候JOIN单独使用都会引发语法错误。将其更改为INNER JOIN.

但是,我怀疑您在更正后可能仍然遇到问题。连接表达式的其余部分令人困惑,我不明白它的目的是什么。因此,在解决JOIN问题后,您可能仍然会遇到另一个语法错误。

于 2012-10-01T18:19:43.110 回答