2009-03-03 10 views
16

私は、ストアドプロシージャ内のすべてのユニオンクエリを持っています。TSQL - ユニオンクエリの合計

私は何をしたいの合計は、列で、クライアント、私はこれを行うだろうか

にそのクエリを返しますか?

マルコム

+0

私は単独で使用する場合(「労働組合は、」重複除外し、「明確な労働組合を」=あなたは間違った結果の危険を冒すUNIONを使用する場合は、あなたのTSQLコード –

答えて

33
SELECT 
    othercol1, othercol2, 
    SUM(bar) 
FROM 
    (
    SELECT 
     othercol1, othercol2, bar 
    FROM 
     RT 
    UNION ALL 
    SELECT 
     othercol1, othercol2, bar 
    FROM 
     FM 
    ) foo 
GROUP BY 
    othercol1, othercol2 
+1

内側のサブクエリ&SUMからの 'othercol1、othercol2、bar'ではなく' othercol1、othercol2、SUM(bar) 'を外部クエリで再度SELECTする方が良いですか?返される行が多すぎる場合、つまり数千または数百万の場合いずれにしても、内側のクエリのSUM()は決して良くなりませんか? – Medorator

+0

@buffer:1つの外部集計ではなく、内部テーブルに2つの集計演算を持ちます。それは良いかもしれない。 – gbn

4
SELECT SUM(MyCol) FROM 
(
SELECT ... MyCol FROM Table1 
UNION ALL 
SELECT ... MyCol FROM Table2 
)as tbl 
+1

を投稿示唆あなたがすべての行、つまりUNION ALL –

+0

@Used_By_Alreadyが必要である可能性が高い場合は、もちろんそうです。それはもちろんUNION ALLでなければなりません。修正されました。 – Joe