多部分标识符“”无法绑定sql server 2008
With Vehicles As (
Select Row_Number() Over (Order By Model.[Year] Desc, Vehicle.Msrp Asc, Vehicle.Id) As RowNumber
, Make.[Name] As Style_Model_Make_Name
, Model.[Name] As Style_Model_Name
, Model.[Year] As Style_Model_Year
, Style.Trim As Style_Trim
, Style.[Name] As Style_Name
, Style.BodyType As Style_BodyType
, Vehicle.CompanyId As Company_Id
, Vehicle.Id
, Vehicle.StyleId As Style_Id
, Vehicle.[Status]
, Vehicle.Vin
, Vehicle.StockNumber
, Vehicle.ModelCode
, Vehicle.Mileage
, Vehicle.InteriorColor
, Vehicle.InteriorColorCode
, Vehicle.ExteriorColor
, Vehicle.ExteriorColorCode
, Vehicle.Certification
, Vehicle.Selling
, Vehicle.Internet
, Vehicle.Special
, Vehicle.Comment
, Vehicle.IsNew
, Vehicle.IsCertified
, Vehicle.StockDate
From dbo.Vehicle (NoLock)
Join dbo.Style (NoLock) On Style.Id = Vehicle.StyleId
Left Join dbo.Engine ON dbo.Style.Id = dbo.Engine.StyleId
Inner Join dbo.Model on dbo.Model.Id = dbo.Style.ModelId
Inner Join dbo.Make ON dbo.Model.MakeId = dbo.Make.Id ON dbo.Style.ModelId = dbo.Model.Id
Where Vehicle.CompanyId in (9)
And Vehicle._IsActive = 1
And DateDiff(day, Vehicle.StockDate, GetDate()) >= @DaysInStock
And Vehicle.Msrp Between @PriceMin And @PriceMax
And Vehicle.Mileage Between @MileageMin And @MileageMax And Convert(int, Model.[Year]) Between @YearMin And @YearMax And Vehicle.IsNew = 1 )
Select Style_Model_Make_Name
, Style_Model_Name
, Style_Model_Year
, Style_Id
, Style_Trim
, Style_Name
, Style_BodyType
, Company_Id
, Vehicle.Id
, Vehicle.Vin
, Vehicle.Mileage
, Vehicle.StockNumber
, Vehicle.ModelCode
, Vehicle.InteriorColor
, Vehicle.InteriorColorCode
, Vehicle.ExteriorColor
, Vehicle.ExteriorColorCode
, Vehicle.Certification
, Case When Vehicle.Msrp < @CallPrice Then 0 Else Vehicle.Msrp End As Msrp
, Case When Vehicle.Selling < @CallPrice Then 0 Else Vehicle.Selling End As Selling
, Vehicle.Internet
, Vehicle.Special
, Vehicle.Comment
, Vehicle.IsNew
, Vehicle.IsCertified
, Vehicle.StockDate
From Vehicles
Where RowNumber Between @StartRowIndex And (@StartRowIndex + @MaximumRows) - 1
我是 sql server 的新手,正在尝试解决问题。 我正在尝试创建一个 CTE 来更轻松地选择不同的列。我认为我的 FROM 语句有问题,但我不确定到底出了什么问题。第二个 SELECT 语句中的所有列都有红色波形,它返回错误“多部分标识符”“无法绑定”错误。对如何解决这个问题有什么想法吗?
With Vehicles As (
Select Row_Number() Over (Order By Model.[Year] Desc, Vehicle.Msrp Asc, Vehicle.Id) As RowNumber
, Make.[Name] As Style_Model_Make_Name
, Model.[Name] As Style_Model_Name
, Model.[Year] As Style_Model_Year
, Style.Trim As Style_Trim
, Style.[Name] As Style_Name
, Style.BodyType As Style_BodyType
, Vehicle.CompanyId As Company_Id
, Vehicle.Id
, Vehicle.StyleId As Style_Id
, Vehicle.[Status]
, Vehicle.Vin
, Vehicle.StockNumber
, Vehicle.ModelCode
, Vehicle.Mileage
, Vehicle.InteriorColor
, Vehicle.InteriorColorCode
, Vehicle.ExteriorColor
, Vehicle.ExteriorColorCode
, Vehicle.Certification
, Vehicle.Selling
, Vehicle.Internet
, Vehicle.Special
, Vehicle.Comment
, Vehicle.IsNew
, Vehicle.IsCertified
, Vehicle.StockDate
From dbo.Vehicle (NoLock)
Join dbo.Style (NoLock) On Style.Id = Vehicle.StyleId
Left Join dbo.Engine ON dbo.Style.Id = dbo.Engine.StyleId
Inner Join dbo.Model on dbo.Model.Id = dbo.Style.ModelId
Inner Join dbo.Make ON dbo.Model.MakeId = dbo.Make.Id ON dbo.Style.ModelId = dbo.Model.Id
Where Vehicle.CompanyId in (9)
And Vehicle._IsActive = 1
And DateDiff(day, Vehicle.StockDate, GetDate()) >= @DaysInStock
And Vehicle.Msrp Between @PriceMin And @PriceMax
And Vehicle.Mileage Between @MileageMin And @MileageMax And Convert(int, Model.[Year]) Between @YearMin And @YearMax And Vehicle.IsNew = 1 )
Select Style_Model_Make_Name
, Style_Model_Name
, Style_Model_Year
, Style_Id
, Style_Trim
, Style_Name
, Style_BodyType
, Company_Id
, Vehicle.Id
, Vehicle.Vin
, Vehicle.Mileage
, Vehicle.StockNumber
, Vehicle.ModelCode
, Vehicle.InteriorColor
, Vehicle.InteriorColorCode
, Vehicle.ExteriorColor
, Vehicle.ExteriorColorCode
, Vehicle.Certification
, Case When Vehicle.Msrp < @CallPrice Then 0 Else Vehicle.Msrp End As Msrp
, Case When Vehicle.Selling < @CallPrice Then 0 Else Vehicle.Selling End As Selling
, Vehicle.Internet
, Vehicle.Special
, Vehicle.Comment
, Vehicle.IsNew
, Vehicle.IsCertified
, Vehicle.StockDate
From Vehicles
Where RowNumber Between @StartRowIndex And (@StartRowIndex + @MaximumRows) - 1
I am new to sql server and trying to figure things out.
I am trying to create a CTE to make selecting different columns easier. I assume there is something wrong with my FROM statement but I'm not sure what exactly is wrong. All the columns in the second SELECT statement have red sqiggles which return and error of "The multi-part identifer "" can not be bound" error. Have any ideas of how to fix this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
从主 SELECT 的列名称中删除
Vehicle.
:Remove
Vehicle.
from column names in your main SELECT: