1

必要なフィールドが 4 つあります ->

  1. ユーザーID
  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

JOINAccess db エンジンはをシノニムとして認識しませんINNER JOINJOIN単独で使用すると、常に構文エラーがスローされます。に変更しINNER JOINます。

ただし、その修正後も問題が発生する可能性があると思います。結合式の残りの部分は紛らわしく、何を達成しようとしているのか理解できません。そのため、問題を修正した後JOINも、別の構文エラーが発生する場合があります。

于 2012-10-01T18:19:43.110 に答える