0

次のエラーの原因となっている以下のクエリがあります。

エラー3296(アクセス)

結合操作のONステートメントが不完全であるか、テーブルが多すぎます。ON式をWHERE句に入れたい場合があります

SELECT
    TBLCATB.Markis AS [Account #], TBLCATB.[Group Number],
    Max(TBLCATB.Name) AS [Account Name], Sum(TBLCATB.Current) AS [Current],
    Sum(TBLCATB.Thirty) AS Thirty, Sum(TBLCATB.Sixty) AS Sixty,
    Sum(TBLCATB.Ninety) AS Ninety, Max(TBLCATB.[Company Code]) AS [Company Code]
FROM
    TBLCATB
    LEFT JOIN asc_OracleMarkis
        ON CLng(TBLCATB.Markis)=asc_OracleMarkis.Markis
WHERE
    (((TBLCATB.LOB) Like "g*" Or (TBLCATB.LOB) Like "l*" Or
      (TBLCATB.LOB) Like "pb*")) AND
    CLng(tblcatb.markis) not in (select acctnumber from sb_acctinfo)
GROUP BY
    TBLCATB.Markis, TBLCATB.[Group Number]
HAVING
    (((Sum(TBLCATB.Ninety))<>0))
ORDER BY
    Sum(TBLCATB.Ninety) DESC;

このエラーを回避するにはどうすればよいですか?

4

3 に答える 3

3

これはMSAccess構文のように見え、最後の括弧がありません。

SELECT TBLCATB.Markis AS [Account #], 
    TBLCATB.[Group Number], 
    Max(TBLCATB.Name) AS [Account Name], 
    Sum(TBLCATB.Current) AS [Current], 
    Sum(TBLCATB.Thirty) AS Thirty, 
    Sum(TBLCATB.Sixty) AS Sixty, 
    Sum(TBLCATB.Ninety) AS Ninety, 
    Max(TBLCATB.[Company Code]) AS [Company Code]
FROM TBLCATB 
LEFT JOIN asc_OracleMarkis 
    ON CLng(TBLCATB.Markis)=asc_OracleMarkis.Markis
WHERE 
(
    (TBLCATB.LOB Like "g*" Or TBLCATB.LOB Like "l*" Or TBLCATB.LOB Like "pb*") 
    AND CLng(tblcatb.markis) not in (select acctnumber from sb_acctinfo)
) <-- this is missing
GROUP BY TBLCATB.Markis, TBLCATB.[Group Number]
HAVING Sum(TBLCATB.Ninety)<>0
ORDER BY Sum(TBLCATB.Ninety) DESC;
于 2013-01-10T16:40:31.703 に答える
0

Clngを使用するのではなく、CASTまたはCONVERTを使用してみてください

于 2013-01-10T16:51:22.767 に答える
0

テーブルがSQL-Serverテーブルの場合。クエリをパススルークエリにして、TSQL構文で記述します。

参照:パススルークエリアクセスSQLサーバー

于 2013-01-10T17:04:12.543 に答える