2015-08-26 197 views
0

我有一個SQL查詢連接3個表並將3個總計列從中拉出。我試圖弄清楚如何查詢該查詢以從其中一列中獲取不同的記錄。以下是我迄今爲止查詢不同記錄的SQL查詢

Select Distinct Make.NAME 
       From 
      (
       Select MakeModel.MAKE_ID, Make.NAME, Vehicle.MODEL_YR 
       From NagsInfo.dbo.Make 
       INNER JOIN NagsInfo.dbo.MakeModel 
        on Make.MAKE_ID = MakeModel.MAKE_ID 
       INNER JOIN NagsInfo.dbo.Vehicle 
        on MakeModel.MAKE_MODEL_ID = Vehicle.MAKE_MODEL_ID 
       Where Vehicle.MODEL_YR = @YEAR 
      ) 

我不斷收到多個不同的語法錯誤,我相信最近的一次告訴我,括號是不正確的,但無論我看着他們所需要的子查詢。

+5

您必須別名派生表,如')AS Make'。除此之外,您可以選擇一列並在此列上應用「DISTINCT」。 –

+1

'SELECT DISTINCT Make.NAME 從NagsInfo.dbo.Make INNER上Make.MAKE_ID = MakeModel.MAKE_ID JOIN NagsInfo.dbo.MakeModel INNER JOIN NagsInfo.dbo.Vehicle 上MakeModel.MAKE_MODEL_ID = Vehicle.MAKE_MODEL_ID 在哪裏Vehicle.MODEL_YR = @ YEAR' – lad2025

+0

非常感謝。我看起來似乎不想給我那麼一點點的信息。 – Xestius

回答

3

爲什麼要使用子查詢?爲什麼不這樣做:

SELECT DISTINCT M.NAME 
FROM NagsInfo.dbo.Make M 
JOIN NagsInfo.dbo.MakeModel MM ON M.MAKE_ID = MM.MAKE_ID 
JOIN NagsInfo.dbo.Vehicle V ON MM.MAKE_MODEL_ID = V.MAKE_MODEL_ID 
WHERE V.MODEL_YR = @YEAR 
+1

那麼,出於某種原因,我在我的腦海中認爲這樣做是不可能的,但是現在看到這讓我意識到我之前得出的結論是非常錯誤的。謝謝你的幫助。 – Xestius