簡體   English   中英

第 14 行“)”附近有問題的語法錯誤:SQL 語句 - SAP Hana

[英]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支持無中生有地選擇記錄。 沒有FROMSELECT無效。

為了創建單行集,可以使用 DUMMY 表。

SELECT current_date FROM DUMMY;

使用 function 表達式的結果創建單行集。

話雖如此,對於比較來說,一組不是必需的。 相反,function 可以直接放入表達式中:

WHERE
  BKPF.MONAT = (MONTH(?)-1) 

另請注意,對於字符串類型的綁定變量,不需要或不允許使用引號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM