SQL View - Where子句

时间:2015-10-13 14:58:07

标签: sql sql-server tsql sql-view

我正在尝试使用代码

运行SQL视图
select * from vwAdvancedSearch where [report Id] = 62 and r.RequestCompanyID = 2

但是收到错误

  

多部分标识符" r.RequestCompanyID"无法受约束。

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

我如何才能使这个子句工作。

感谢

西蒙

1 个答案:

答案 0 :(得分:5)

  

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

它不必位于SELECT 必须位于FROM caluse的表/视图中。问题是您的查询使用了您尚未定义的别名r。我怀疑你想要

select * from vwAdvancedSearch where [report Id] = 62 and RequestCompanyID = 2

select * from vwAdvancedSearch r where [report Id] = 62 and r.RequestCompanyID = 2

如果RequestCompanyID不在vwAdvancedSearch视图中,那么您必须使用其他数据源或加入 列的表。< / p>

修改

  

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

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

select * from vwAdvancedSearch(2) where [report Id] = 62