我已经在SQL SERVER中创建了一些视图。我有一个最终的视图,其中我组合了所有其他的。这就是我想用来填充我的tblInfoTable的视图。事情是这样的,我有3个查询出售,购买,返回,我需要过滤从和到日期。出于测试目的,我在设置视图时硬编码了这些日期,以确保它们正常工作。因为我是SQL的新手,所以我没有意识到我不能将参数传递给视图。但是现在一切都完成了,我正在编写一个简单的存储过程,我想在其中传递这两个值。所以事情是这样的.
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."***我只是尝试这样做,以增加价值。我不知道问题是什么?
发布于 2016-01-21 02:52:59
问题在于,即使vAdded视图构成vBegRollFwdCompleted的一部分,它也不是查询的一部分。您可以更改vBegRollFwdCompleted视图以包括transDate列,并将WHERE子句更改为引用vBegRollFwdCompleted.transDate,或者只需将vAdded视图左连接回vBegRollFwdCompleted...但在这一点上,SQL Server会多次从该视图中进行选择。
https://stackoverflow.com/questions/34907842
复制相似问题