Sql 续集视点查询错误
我第一次使用SEQUEL视点,我在AcctNo中创建了这个查询。作为派生字段Sql 续集视点查询错误,sql,db2,ibm-midrange,db2-400,Sql,Db2,Ibm Midrange,Db2 400,我第一次使用SEQUEL视点,我在AcctNo中创建了这个查询。作为派生字段 SELECT Cat(substr(cat("000",digits(i0nrov.cbi0rep)),length(cat("000",digits(i0nrov.cbi0rep)))-2,3),substr(cat("000000000",digits(i0cnbr.cbi0rep)),length(cat("000000000",digits(i0cnbr.cbi0rep)))-8,9))NAME(Acc
SELECT Cat(substr(cat("000",digits(i0nrov.cbi0rep)),length(cat("000",digits(i0nrov.cbi0rep)))-2,3),substr(cat("000000000",digits(i0cnbr.cbi0rep)),length(cat("000000000",digits(i0cnbr.cbi0rep)))-8,9))NAME(Acctno) COLHDG("Accnt Number"),
i0cnbr.cbi0rep NAME(PreAccNo) COLHDG("Pre Accnt Num" "Number"),
i0cnbr.cbi0repres NAME(PostAccNo) COLHDG("Post Accnt Num" "Number"),
SUM(i0a01) NAME(PreARBal) COLHDG(" Pre A/R Bal ") EDTCDE(L), SUM(i0a01) NAME(PostARBal) COLHDG("Post A/R Bal") EDTCDE(L)
FROM bakbosfile/cbi0rep,auditsql/xrfcmpfres,auditsql/cbi0repres
INNER JOIN Acctno=cxgcus.xrfcmpfres and cxcnbr.xrfcmpfres=i0cnbr.cbi0repres
GROUP BY Acctno,PreAccNo,PostAccNo
HAVING SUM(I0A01.cbi0rep)<>SUM(I0A01.cbi0repres)
UNION ALL
SELECT Cat(substr(cat("000",digits(i0nrov.cbi0rep)),length(cat("000",digits(i0nrov.cbi0rep)))-2,3),substr(cat("000000000",digits(i0cnbr.cbi0rep)),length(cat("000000000",digits(i0cnbr.cbi0rep)))-8,9))NAME(Acctno) COLHDG("Accnt Number"),
i0cnbr.cbi0rep NAME(PreAccNo) COLHDG("Pre Accnt Num" "Number"),
i0cnbr.cbi0repbus NAME(PostAccNo) COLHDG("Post Accnt Num" "Number"),
SUM(i0a01) NAME(PreARBal) COLHDG(" Pre A/R Bal ") EDTCDE(L), SUM(i0a01) NAME(PostARBal) COLHDG("Post A/R Bal") EDTCDE(L)
FROM bakbosfile/cbi0rep,auditsql/xrfcmpfbus,auditsql/cbi0repbus
INNER JOIN Acctno=cxgcus.xrfcmpfbus and cxcnbr.xrfcmpfbus=i0cnbr.cbi0repbus
GROUP BY Acctno,PreAccNo,PostAccNo
HAVING SUM(I0A01.cbi0rep)<>SUM(I0A01.cbi0repbus)
请帮忙!我得到以下错误:
您好,巴克,谢谢您的回复,但它无法识别声明中的2 JOIN,因此我已将查询更改为:
但是得到错误:
如果这是针对DB2 for i的,典型的语法是:
SELECT Cat(substr(cat("000",digits(i0nrov.cbi0rep)),length(cat("000",digits(i0nrov.cbi0rep)))-2,3),substr(cat("000000000",digits(i0cnbr.cbi0rep)),length(cat
("000000000",digits(i0cnbr.cbi0rep)))-8,9)) as acctno, ...
FROM bakbosfile/cbi0rep
JOIN auditsql/xrfcmpfres on Cat(substr(cat("000",digits(i0nrov.cbi0rep)),length(cat("000",digits(i0nrov.cbi0rep)))-2,3),substr(cat("000000000",digits(i0cnbr.cbi0rep)),length(cat
("000000000",digits(i0cnbr.cbi0rep)))-8,9))=cxgcus.xrfcmpfres
JOIN auditsql/cbi0repres on cxcnbr.xrfcmpfres=i0cnbr.cbi0repres
IBM文档可在中找到。您没有提到要连接到哪个版本的IBM i,所以。您使用的是什么DBMS?这不是标准语法,或者至少没有我能识别的语法。MySQL和DB2不是很常见的组合?我有同样的问题。我不确定它在后端使用的是哪个数据库。IBM-AS400工具中的SEQUEL视点,因此我假设它是DB2数据库。SEQUEL viewpoint是一个创建查询的工具向导。请将内部联接替换为WHERE,然后再试一次。我不熟悉db2 sql语法,但在我看来,您尝试混合使用ANSI-89和ANSI-92 sql标准。@Prat14您刚才尝试过用WHERE子句替换内部联接吗?我认为你应该能够在你最初的询问中回答这个问题。
SELECT Cat(substr(cat("000",digits(i0nrov.cbi0rep)),length(cat("000",digits(i0nrov.cbi0rep)))-2,3),substr(cat("000000000",digits(i0cnbr.cbi0rep)),length(cat
("000000000",digits(i0cnbr.cbi0rep)))-8,9)) as acctno, ...
FROM bakbosfile/cbi0rep
JOIN auditsql/xrfcmpfres on Cat(substr(cat("000",digits(i0nrov.cbi0rep)),length(cat("000",digits(i0nrov.cbi0rep)))-2,3),substr(cat("000000000",digits(i0cnbr.cbi0rep)),length(cat
("000000000",digits(i0cnbr.cbi0rep)))-8,9))=cxgcus.xrfcmpfres
JOIN auditsql/cbi0repres on cxcnbr.xrfcmpfres=i0cnbr.cbi0repres