2016-01-20 55 views
0

我在SQL SERVER中創建了一些視圖。我有一個最後的觀點,我把所有其他人結合在一起。這是我想用來填充我的tblInfoTable的視圖。事情是,我有3個查詢出售,購買,返回,我需要過濾FROM和TO日期。出於測試目的,我在設置視圖以確保它們正常工作時對這些日期進行了硬編碼。因爲我是SQL新手,我沒有意識到我無法將參數傳遞給視圖。但現在全部完成了,我正在編寫一個簡單的存儲過程,我想要傳遞這兩個值。因此,這裏是怎麼一回事呢....SQL SERVER視圖和存儲過程問題?

Truncate table tbl_InfoTable <- table where I want to enter data 
INSERT INTO tbl_InfoTable 
(UserID, CompanyID, CompanyName, Sold, Bought, Returned) 
SELECT 
'1234',  
CompanyID, 
CompanyName, 
Sold, 
Bought, 
Returned 
FROM vBegRollFwdCompleted <-- This is my main VIEW from which I'd be able to select everything if it wasnt for the fact that I need filtering in SOLD BOUGHT RETURNED. 

Where vAdded.transDate between '12/1/2014' and '12/31/2015' <-- here's where the issue arises. I added a field in my vADDED view TransDate; where; >1/1/1995 since I needed to have it there in order to reference it. But when i write this WHERE statement it tells me that "The multi-part identifier "***vAdded.transDate" could not be bound."*** 

我只是想爲附加值做到這一點。我不知道這個問題可能是什麼?

+0

你的FROM引用視圖vBegRollFwdCompleted但你的條件引用vAdded ?? – techspider

+1

如果transDate是vBegRollFwdCompleted的一部分,則可以在不添加vAdded的情況下對其進行過濾 – techspider

+0

這不是。我只在vAdded中使用TransDate和WHERE過濾器,所以它不會在VIEW中顯示爲字段。如果我添加了TransDate,它會在我拉起數據時混淆數據。 – barry17

回答

1

問題是vAdded視圖不是查詢的一部分,即使它構成vBegRollFwdCompleted的一部分。你可以改變vBegRollFwdCompleted視圖來包含transDate列,並將你的WHERE子句改爲引用vBegRollFwdCompleted.transDate,或者你可以將vAdded視圖重新加入到vBegRollFwdCompleted中......但是在那時你正在使用SQL Server select從這個觀點多次。