我正在尝试使用代码
运行SQL视图select * from vwAdvancedSearch where [report Id] = 62 and r.RequestCompanyID = 2
但是收到错误
多部分标识符" r.RequestCompanyID"无法受约束。
r.RequestCompanyID不是select中的某个字段,但需要成为where子句标准的一部分。
我如何才能使这个子句工作。
感谢
西蒙
答案 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