2017-03-17 34 views
-2

我正在使用SQL Server存储过程。StoredProcedure:关键字'INNER'附近的语法错误

我面对错误

“关键字 '内部' 附近有语法错误” 的下面是我的查询:

set @SQL= 'select pushto as MSISDN,pushprice as Price,pushdate as DateTime,pushtext as Message from '[email protected]+' WITH (NOLOCK) WHERE '[email protected] + @scodelist+ @clientlist + @piclist +' INNER JOIN INAPremium..INA_Keyword K on R.keyid = K.keyid WHERE '[email protected] 
+ @scodelist+ @clientlist + @piclist + @DNType + @pkeywordlist + @seckeywordlist +' order by pushdate desc' 

需要大家帮助的手。 谢谢。

+1

你只能有一个'WHERE'条款,它需要在所有的'FROM'前来与'JOIN's。 –

+0

标记您正在使用的dbms。该代码是产品特定的! – jarlh

回答

0

您发布的查询方式错误。您在INNER JOIN之前使用过WHERE,这实际上应该是其他方式。此外,您有多个WHERE条款

from '[email protected]+' WITH (NOLOCK) 
WHERE '[email protected] + @scodelist+ @clientlist + @piclist +' 
INNER JOIN INAPremium..INA_Keyword K on R.keyid = K.keyid 

应该

from '[email protected]+' WITH (NOLOCK)  
INNER JOIN INAPremium..INA_Keyword K on R.keyid = K.keyid 
WHERE '[email protected] + @scodelist+ @clientlist + @piclist +' 
0

您语法必须from ... inner join ... where

类似的东西:

set @SQL= 'select pushto as MSISDN,pushprice as Price,pushdate as DateTime,pushtext as Message 
from '[email protected]+' WITH (NOLOCK) + 
' INNER JOIN INAPremium..INA_Keyword K on R.keyid = K.keyid 
WHERE '[email protected] + 
+ @scodelist+ @clientlist + @piclist + @DNType + @pkeywordlist + @seckeywordlist +' order by pushdate desc' 
0

从我的角度来看,这是语法错误。

在INNER JOIN之后,您有WITH WHERE,WITH WITH(NOLOCK)后第二次。

请试试这个代码:

set @SQL= ' 
select 
    pushto as MSISDN, 
    pushprice as Price, 
    pushdate as DateTime, 
    pushtext as Message 
    from '[email protected]+' 
    WITH (NOLOCK) 
    INNER JOIN INAPremium..INA_Keyword K on R.keyid = K.keyid 
    WHERE '[email protected]+ @scodelist+ @clientlist + @piclist + @DNType + @pkeywordlist + @seckeywordlist +' 
    order by pushdate desc' 
相关问题