2016-01-20 3 views
0

Я создал несколько представлений в SQL SERVER. У меня есть окончательный вид, где я объединил всех остальных. Это представление, которое я хочу использовать для заполнения моего tblInfoTable. Дело в том, что у меня есть 3 запроса SOLD, BOUGHT, RETURNED, где мне нужно отфильтровать даты 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."*** 

Я просто пытаюсь сделать это для значений ADDED. Я понятия не имею, в чем проблема?

+0

ваш запрос ссылки FROM vBegRollFwdCompleted, но ваши условия ссылаются на vAdded ?? – techspider

+1

Если transDate является частью vBegRollFwdCompleted, вы можете отфильтровать его без vAdded – techspider

+0

Это не так. Я использую TransDate в vAdded с фильтром WHERE, поэтому он не отображается как поле в VIEW. Если я добавлю TransDate, это испортит данные, когда я его подниму. – barry17

ответ

1

Проблема в том, что vAdded view не является частью запроса, хотя он является частью vBegRollFwdCompleted. Вы можете либо изменить представление vBegRollFwdCompleted, чтобы включить столбец transDate, и изменить предложение WHERE, чтобы ссылаться на vBegRollFwdCompleted.transDate, или вы могли просто присоединиться к vAdded представлению обратно к vBegRollFwdCompleted ... но в этот момент у вас есть выбор SQL Server с этой точки зрения несколько раз.

Смежные вопросы