2012-11-21 28 views
0

我需要一个sqldatasource,其中包含以下sql。asp sqldatasource text

if @filter = 'departments' 
begin 

SELECT ISNULL(DocTitle,'') as Name, DocNumber as id, DocUrl+DocName AS link,LastModBy,LastModDate, IsLink 
FROM cmc.CMC_Docs d 
INNER JOIN CMC.CMC_Doc_Locations as l on l.FamilyID = d.FamilyID 
INNER JOIN CMC.CMC_DocFamilies df on df.FamilyID = d.FamilyId 
WHERE IsEnabled=1 
AND ISNULL(DocName,'') <> '' 
AND d.FamilyID IN @dep 
ORDER by DocTitle 

end 

其中@dep是一样的东西(2,3)

然而,当我尝试测试查询我得到一个错误说近@dep不正确的语法。

任何想法,我需要在数据源中写入这些以使其工作?

谢谢,

+0

尽可能即时知道这个只能通过从字符串连接的动态SQL查询来实现。或者,有一个可以为你做过滤器的嵌套查询。 – f0x

+0

尝试:SELECT ISNULL(DocTitle,'')as Name,DocNumber as id,DocUrl + DocName AS link,LastModBy,LastModDate,IsLink FROM cmc.CMC_Docs d INNER JOIN CMC.CMC_Doc_Locations as l on l.FamilyID = d。 FAMILYID INNER JOIN上df.FamilyID = d.FamilyId CMC.CMC_DocFamilies DF WHERE的IsEnabled = 1 AND ISNULL(可采用DocName, '')<> '' AND d.FamilyID IN(@dep) ORDER BY DocTitle – sjramsay

+0

如果你正在尝试有一个参数化的子句 - [这篇文章](http://stackoverflow.com/questions/337704/parameterizing-an-sql-in-clause)可能会有所帮助。 – Goose

回答

0

你需要把它放在()吗?

例如:从产品的选择*其中的productid在(1,2,3)的作品
例如:SELECT * FROM产品,其中的productid 1,2,3 - 不工作

+0

变量@dep =(2,3),它包括卷曲。 – user541597