sybase iq动态查询中的语法错误

时间:2014-07-05 07:36:38

标签: tsql sybase

我是Sybase IQ的新手,当我尝试执行此代码时,会显示错误

  

无法执行该语句。第1行SELECT附近的语法错误

DECLARE @SQL VARCHAR(500)

SET @SQL='SELECT * FROM SNP_CHECK_TAB A INNER JOIN SELECT * FROM E$_auditemp_trg B ON B.ODI_ORIGIN = A.ORIGIN WHERE B.ODI_SESS_NO =532001 ORDER BY B.ODI_CHECK_DATE DESC'

EXECUTE(@SQL)

请帮我解决这个问题。

提前致谢

1 个答案:

答案 0 :(得分:0)

parenthesis的第二次查询错过了Inner Join

你必须像

一样使用
... INNER JOIN (SELECT * FROM E$_auditemp_trg ) B ...
                                           -- ^ you need to enclose here

Instaed of

INNER JOIN (SELECT * FROM E$_auditemp_trg B ON B.ODI_ORIGIN = A.ORIGIN WHERE
B.ODI_SESS_NO =532001 ORDER BY B.ODI_CHECK_DATE DESC)
                                                 -- ^ (not here)

试试这个

DECLARE @SQL VARCHAR(500)
SET @SQL='SELECT * FROM SNP_CHECK_TAB A INNER JOIN (SELECT * FROM E$_auditemp_trg) B ON B.ODI_ORIGIN = A.ORIGIN WHERE B.ODI_SESS_NO =532001 ORDER BY B.ODI_CHECK_DATE DESC'
EXECUTE(@SQL)