2017-10-20 18 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から最大コードを取得したいと、これは何列名が「Q」の欄2 無効な列に指定されなかったエラー最大値

を示しtable2の中にあります。名前QName

+1

エラーは正しいです。 qにコードまたはQName列がありません。 LEFT JOIN(SELECT MAX(コード)ASコードFROMテーブル3)AS q ON これは、不足しているコード列を修正するはずです。しかし、あなたのQNameをどこから入手するのか分かりません。あなたの物語についてのより多くの情報が役に立つでしょう。 – user8527410

+0

check update question –

+0

LEFT JOIN(SELECT MAX(コード)AS code FROM table3)AS q on ed.code = q.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