2017-10-20 138 views
-1
SELECT 
    ISNULL(Name, '-') AS Name, 
    ISNULL(q.QName, '-') AS Education, 
    ISNULL(Grade, '-') AS Grade 
FROM table1 t1 
    LEFT JOIN table2 t2 ON t1.id = t2.id 
    LEFT JOIN (SELECT qname,max (code) FROM table3 group by Code) q ON ed.code = q.code 
WHERE vw.id = 125 

有3條記錄表2中,現在我想從表2獲得最大的代碼,這顯示錯誤最大值

沒有列名的的「Q」 2欄指明 無效列名稱QName

+1

錯誤是正確的。您的q中沒有代碼或QName列。您應該將其更改爲 'LEFT JOIN(SELECT MAX(code)AS code FROM table3)AS q ON' 這應該修復缺少的代碼列。但我不知道從哪裏得到你的QName。關於你的故事的更多信息將會很有用。 – user8527410

+0

檢查更新問題 –

+0

'LEFT JOIN(SELECT MAX(code)AS code FROM table3)AS q ON ed.code = q.code'應該修復'invalid column name code'。但是你在這個子查詢中沒有QName你在'ISNULL(q.QName,' - ')中使用了什麼? – user8527410

回答

0
SELECT 
    ISNULL(Name, '-') AS Name, 
    ISNULL(q.QName, '-') AS Education, 
    ISNULL(Grade, '-') AS Grade 
FROM table1 t1 
    LEFT JOIN table2 t2 
     ON t1.id = t2.id 
    LEFT JOIN (SELECT QName, MAX(code) AS code FROM table3 GROUP BY QName) q 
     ON ed.code = q.code 
WHERE vw.id = 125