2015-10-13 71 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查看我的編輯。 –