这是我要调用的声明:
SELECT
Test_Data.PRDINVSEQ.DASTAT,
DACUST,
DASRNO,
DADTOR,
DAORNO,
Test_Data.bthdrextpf.SHXDEP,
DADNAM,
DADTST,
CASE WHEN DACONF = '' THEN 'N' ELSE DACONF END AS DACONF1,
DAENGD,
DAEXTC,
DAPRGY,
Test_Data.BTHDR.SHSPL1,
DASPRD,
DADTCD,
DALDNO,
DADTLD,
DADTMD,
DAMDLN,
Test_Data.PRDINVSEQ.STATSQ
FROM Test_Data.BTHDR
JOIN Test_Data.DLRINVAPF ON SHORNO = DAORNO
JOIN Test_Data.PRDINVSEQ ON Test_Data.DLRINVAPF.DASTAT = Test_Data.PRDINVSEQ.DASTAT
JOIN Test_Data.BTHDREXTPF ON SHORNO = SHXORNO
WHERE TRIM(DACUST)<>'' AND Test_Data.DLRINVAPF.DASTAT IN ('WP', 'OD', 'SC', 'BO')
ORDER BY DADNAM, Test_Data.PRDINVSEQ.STATSQ ASC, DADTST ASC, DAMDLN ASC
错误对我来说没有意义:
[SQL0104] Token was not valid. Valid tokens: ( + * - ? : DAY INF LAG NAN RID ROW RRN CASE CAST CHAR DATE DAYS.
注意Token和was之间有3个空格。
我更像是一名 Microsoft SQL 开发人员。任何有关使用 IBM/DB2 的指示或建议都值得赞赏,但我需要运行此 IBM/DB2 查询。
有人可以向我解释这个错误吗?
三部分命名(Test_Data.PRDINVSEQ.DSTAT)指向名为Test_Data 的数据库、名为PRDINVSEQ 的表和名为DASTAT 的列。如果 Test_Data 实际上是一个模式,请将其从 column references 中删除并保留在 table references 中。
参考: https://www.ibm.com/docs/en/i/7.5?topic=request-three-part-names https://www.ibm.com/docs/en/i/7.5?topic=names-qualified-column