2012-01-25 51 views
0
 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のステートメントに何か問題があると仮定しますが、正確に何が間違っているのか分かりません。 2番目のSELECTステートメントのすべての列に赤い「sqiggles」が返され、「複数部分識別子」「結合できません」というエラーが返されます。これを修正する方法のアイデアはありますか?マルチパート識別子はSQL Server 2008にバインドできません

答えて

2

あなたのメインのSELECTの列名からVehicle.を削除します。助けを

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 
+0

感謝!! – user1169520

関連する問題