2017-10-05 96 views
-2

我有這樣的JOIN:附近有語法錯誤和條款

LEFT MERGE JOIN 
    (SELECT 
     VOUCHER, TAXITEMGROUP, TAXCODE, TAXAMOUNT, TAXAMOUNTCUR, SOURCERECID, GENERALJOURNALACCOUNTENTRY 
    FROM 
     ##TGJAE TT 
    WHERE 
     (TT.TAXCODE LIKE 'RISR%')) TTRISR 
AND TT.POSTINGTYPE IN (14, 236, 71) 
AND TT.TRANSDATE BETWEEN @FECHA_INI AND @FECHA 
AND TT.TAXORIGIN = 11 
AND ON C1.TT_VOUCHER = TTRISR.VOUCHER 
AND C1.TT_SOURCERECID = TTRISR.SOURCERECID 
AND C1.TT_TAXITEMGROUP = TTRISR.TAXITEMGROUP 
AND TTRISR.GENERALJOURNALACCOUNTENTRY = PRO.TTGJAEF_GENERALJOURNALACCOUNTENTRY 

但是,當我與SQL Server Management Studio中執行,我得到這個錯誤:

Incorrect syntax near the keyword 'AND'

我沒有找到我的問題AND條款,任何人都可以解釋我的加入有什麼問題嗎?問候

+0

(TT.TAXCODE LIKE'RISR%'))TTRISR <---該行產生錯誤 – GSazheniuk

回答

2

正確格式化的代碼總是更容易閱讀和調試。

你有你的WHEREON條款到處都是。

LEFT MERGE JOIN 
      (
        SELECT VOUCHER 
         ,TAXITEMGROUP 
         ,TAXCODE 
         ,TAXAMOUNT 
         ,TAXAMOUNTCUR 
         ,SOURCERECID 
         ,GENERALJOURNALACCOUNTENTRY 
        FROM ##TGJAE TT 
        WHERE TT.TAXCODE LIKE 'RISR%' 
         AND TT.POSTINGTYPE IN(14,236,71) 
         AND TT.TRANSDATE between @FECHA_INI AND @FECHA 
         AND TT.TAXORIGIN = 11 
      ) TTRISR 
ON C1.TT_VOUCHER = TTRISR.VOUCHER 
AND C1.TT_SOURCERECID = TTRISR.SOURCERECID 
AND C1.TT_TAXITEMGROUP = TTRISR.TAXITEMGROUP 
AND TTRISR.GENERALJOURNALACCOUNTENTRY = PRO.TTGJAEF_GENERALJOURNALACCOUNTENTRY 
1

您使用AND ON在第6行/第7行的開頭。您可能想要刪除該AND