2017-01-04 5 views
0

派生テーブル間のフィールドにアクセスできますか?SQL - 派生テーブル間のフィールドの共有

SELECT * 
FROM (SELECT ID, COL1A FROM Table1) T1 
     JOIN (SELECT ID, COL2A FROM Table2) T2 
      ON T1.ID = T2.ID 
     JOIN (SELECT ID, (COL3A + T2.COL2A) AS SUM FROM Table3) T3 
      ON T1.ID = T3.ID 
+0

はい、上記のコードでエラーが発生していますか? –

+0

はい、そうです。または、Common Table Expressions(CTE)を使用することもできます。 – JotaPardo

+1

"はい"というコメントの出所はありません。 'T2.COL2A'はANSI SQLと私がよく知っているすべてのデータベースの範囲外です。クエリを書くためのより良い方法がありますが、特定の式はそこでは許可されていません。 –

答えて

2

あなたはSELECT句で複数のカラムを使用して式を置く:

SELECT t1.ID, t1.COL1A, t2.COL2A, (t3.COL3A + t2.COL2A) as sum 
FROM Table1 T1 JOIN 
    Table2 T2 
    ON T1.ID = T2.ID JOIN 
    Table3 T3 
    ON T1.ID = T3.ID; 

すべての派生テーブルのための必要はありません。

関連する問題