SQL View - Where子句

Sim*_*ice 0 sql t-sql sql-server sql-view

我试图使用代码运行SQL视图

select * from vwAdvancedSearch where [report Id] = 62 and r.RequestCompanyID = 2
Run Code Online (Sandbox Code Playgroud)

但是我收到了一个错误

无法绑定多部分标识符"r.RequestCompanyID".

r.RequestCompanyID不是select中的一个字段,但需要是where子句标准的一部分.

我怎样才能让这个子句工作.

谢谢

西蒙

D S*_*ley 5

r.RequestCompanyID不是select中的一个字段,但需要是where子句标准的一部分.

它不必是在SELECT确实必须在表/视图FROMcaluse.问题是您的查询使用了r您尚未定义的别名.我怀疑你想要

select * from vwAdvancedSearch where [report Id] = 62 and RequestCompanyID = 2
Run Code Online (Sandbox Code Playgroud)

要么

select * from vwAdvancedSearch r where [report Id] = 62 and r.RequestCompanyID = 2
Run Code Online (Sandbox Code Playgroud)

如果RequestCompanyID不是在视图中vwAdvancedSearch,那么你要么必须使用不同的数据源或加入到一个表确实有列.

编辑

在我看来,我有select * from table r where r.RequestCompanyID = @RequestCompanyID.如何将值传递给它?

从参数化视图查询时,您将传递参数的值,就像将其传递给函数一样:

select * from vwAdvancedSearch(2) where [report Id] = 62
Run Code Online (Sandbox Code Playgroud)