2016-10-31 7 views
1

私は、UNIONSを含む別々のレポートで作成する3つのテーブルを持っています。他のレポートで使用している別々のUNIONをUNIONした1つの大きなレポートを作成することが可能かどうかは疑問でした。ユニオンをユニオン内に置くことは可能ですか?

それは今、この権利のようなものになります。

SELECT 
z.name, 
z.social 

FROM 
(SELECT * 
FROM 
(SELECT 
accta.name, 
accta.social 
FROM accta 
WHERE accta.name <> 'Bob' 
GROUP BY name 

UNION 

SELECT 
acctb.name, 
acctb.social 
FROM acctb 
GROUP BY name 

UNION 

SELECT 
acctc.name, 
acctc.social 
FROM acctc 
GROUP BY name) a 

UNION 

(SELECT 
accta.name, 
accta.social 
FROM accta 
GROUP BY name 

UNION 

SELECT 
acctb.name, 
acctb.social 
FROM acctb 
WHERE acctb.name <> 'Steve' 
GROUP BY name 

UNION 

SELECT 
acctc.name, 
acctc.social 
FROM acctc 
GROUP BY name) b 

) z 

GROUP BY z.name 

その後、別のテーブルで労働組合で作られたことを労働組合にしようとするテーブルを作成するので、基本的にはイム合併する3つのテーブルを。

このようなことも可能ですか?私は間違いを続けている。

+0

どのような種類のエラー? – Krease

+0

常にテーブルの後の最初のUNIONにエラーが出る –

+0

Nevermind、私はそれを理解しました。テーブルの前にSELECT *ステートメントが必要です。それ以外の場合、UNIONへのテーブルのデータは選択されていません。 –

答えて

1

はい。

あなただけの括弧を使用し、あなたの組合に階層を追加する場合:

SELECT columnName FROM tableName 
UNION (SELECT columnName FROM anotherTableName UNION SELECT columnName FROM thirdTableName) 
ORDER BY columnName; 
0

構文に誤りが単にありました、私は、テーブルBの前にSELECT *ステートメントを追加する必要があります。私の例ではコードがあるので、テーブルbで何も選択されていないので、テーブルは何にも結合していません。

関連する問題