[英]Problematic syntax error near “)” at line 14: SQL statement - SAP Hana
我相信您已經習慣了這個問題,但是我的 SQL 腳本遇到了問題。 這是非常令人沮喪的。
當我對 SAP Hana 數據庫執行 SQL 時,我不斷收到此錯誤:
執行 SQL 語句時發生錯誤:SAP DBTech JDBC:[257]:sql 語法錯誤:“)”附近的語法錯誤:第 14 行
讓我在這里介紹一下SQL:
SELECT
BKPF.BKTXT, BKPF.MONAT, BSEG.BELNR, BSEG.BUKRS, BSEG.DMBTR, BSEG.GJAHR, BSEG.MANDT, BSEG.PRCTR, BSEG.SAKNR, CEPCT.KTEXT, CEPCT.LTEXT, SKAT.MCOD1, SKAT.TXT20, SKAT.TXT50
FROM
SAPPR1.BSEG
INNER JOIN SAPPR1.BKPF ON BSEG.GJAHR = BKPF.GJAHR
INNER JOIN SAPPR1.CEPCT ON BSEG.PRCTR = CEPCT.PRCTR
INNER JOIN (SELECT
SAKNR, TXT20, TXT50, MCOD1
FROM
SAPPR1.SKAT
WHERE
SPRAS not LIKE '%[a-z0-9 .]%' ) AS SKAT_SUB ON BSEG.SAKNR = SKAT_SUB.SAKNR
WHERE
BKPF.MONAT = (SELECT Month('?')-1)
AND (BSEG.GJAHR = (SELECT Year('?')-1 HAVING Month('?')-1 < 4) OR BSEG.GJAHR = (SELECT Year('?') HAVING Month('?')-1 > 3))
AND BSEG.MANDT = ?
;
與其他 DBMS 不同,HANA不支持無中生有地選擇記錄。 沒有FROM
的SELECT
無效。
為了創建單行集,可以使用 DUMMY 表。
SELECT current_date FROM DUMMY;
使用 function 表達式的結果創建單行集。
話雖如此,對於比較來說,一組不是必需的。 相反,function 可以直接放入表達式中:
WHERE
BKPF.MONAT = (MONTH(?)-1)
另請注意,對於字符串類型的綁定變量,不需要或不允許使用引號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.