2015-10-13 72 views
-1

我试图使用代码SQL视图 - Where子句

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

运行SQL视图,但我得到一个错误返回

多部分标识符“r.RequestCompanyID”不能界。

r.RequestCompanyID是不是在选择的领域之一,但确实需要的where子句的标准的一部分。

我该如何去得到这个where子句的工作。

感谢

西蒙

+3

如果此列,请使用'RequestCompanyID',而不是'r.RequestCompanyID'在''select * from vwAdvancedSearch where [report Id] = 62 and RequestCompanyID = 2' – wiretext

+2

您需要为'vwAdvancedSearch'用'r'替代您的表,或者从'r.RequestCompanyID'中删除'r',是'vwAdvancedSearch'上的'RequestCompanyID'列。 –

+0

正如问题中所建议的那样,它不是我选择的一列\字段,但需要成为我用 –

回答

4

r.RequestCompanyID是不是在选择的领域之一,但确实需要的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,那么你要么必须使用不同的数据源或加入到表确实有柱。

编辑

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

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

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

所以在我看来,我说'select *从表r中r.RequestCompanyID = @ RequestCompanyID'谁给我传递值? –

+0

该字段也在'from'子句中的表中,但其中有大约6个连接的表,因此标识符 –

+0

@SimonPrice查看我的编辑。 –