2012-01-20 18 views
4

私は熟練したプログラマーではないので、これを行うのは難しいです。私はこのSQLコードで上記のエラーが発生している、私は理由を把握することはできません。お知らせ下さい。構文エラー(演算子がありません)

推測の
SELECT a.agentname as 'Salesforce AgentName', a.loannumber, ag.agentname as 'portal agentname' 
from salesforce a 
inner join portal b ON a.loannumber = b.loannumber 

left join agents ag ON b.agentid = ag.agentid 
where a.agentname <> ag.agentname 
+0

に><変更してみてください! = –

+0

[かっこが必要かもしれないようです](http://nm1m.blogspot.com/2007/10/multiple-left-joins-in-ms-access.html) –

+0

私はまだその変更でエラーが発生しています。 – user1161512

答えて

2

ビット(based on here

SELECT a.agentname AS 'Salesforce AgentName', 
     a.loannumber, 
     ag.agentname AS 'portal agentname' 
FROM ((salesforce as a) 
     INNER JOIN portal as b 
     ON a.loannumber = b.loannumber) 
     LEFT JOIN agents ag 
     ON b.agentid = ag.agentid 
WHERE a.agentname <> ag.agentname 

ところで、通常、あなたは彼らがNULL

ている可能性を考慮していない限り WHERE句の外側の結合テーブルの列を参照するとエラーになります
1

アクセス 'dbエンジンには、SELECTステートメントに2回以上の結合が含まれている場合、括弧が厳密に要求されます。私は、単純なバージョンのクエリから始めることをお勧めします(フィールドリストとWHERE句を破棄します)。

SELECT * 
FROM 
    (salesforce AS a 
    INNER JOIN portal AS b 
    ON a.loannumber = b.loannumber) 
    LEFT JOIN agents AS 
    ag ON b.agentid = ag.agentid; 

そのバージョンの作品を仮定すると、これを試してみてください。

SELECT 
    a.agentname AS [Salesforce AgentName], 
    a.loannumber, 
    ag.agentname AS [portal agentname] 
FROM 
    (salesforce AS a 
    INNER JOIN portal AS b 
    ON a.loannumber = b.loannumber) 
    LEFT JOIN agents AS 
    ag ON b.agentid = ag.agentid 
WHERE a.agentname <> ag.agentname; 

通知は私の代わりに単一引用符の角括弧で列名のエイリアスを同封。一重引用符ではエラーは発生しませんが、列ヘッダーに含まれています。

あなたはAccessのクエリデザイナでアクセスクエリを作成することで自分自身を援助します。 dbエンジンが受け入れない構文でクエリを作成するのは難しくなります。

編集:このクエリの目的は、Salesforceとエージェントのテーブルからエージェント名の値を比較することであるならば、おそらくあなたは、WHERE句としてこれを試してみたいことがあります。

WHERE a.agentname <> ag.agentname OR ag.agentname Is Null; 
関連する問題