2009-11-13 11 views
6

Ich versuche mehrere Abfragen in mehreren Tabellen auszuführen - ähnlich wie "Anzahl (*) aus TabelleA auswählen, wobei x = 1" pro Tabelle.Wie mehrere SQL-Abfragen zusammen summieren?

Was würde Ich mag zu tun ist, um alle der Count (*) Werte, die zurückgegeben werden und sie zu einem einzigen Wert summieren ...

Irgendwelche Ideen?

+0

Haben Sie diese in SQL zu tun? Oder in Ihrer Anrufsprache - wenig mehr Informationen wären nützlich. – Paddy

Antwort

10
select sum(individual_counts) from 
(
    select count(*) as individual_counts from TableA where x = 1 
    union all 
    select count(*) from TableB where x = 2 
.... 
) as temp_table_name 

Normalerweise brauchen Sie nur den Alias ​​bei der ersten Auswahl, wenn Sie eine Union verwenden.

+0

Das hat für mich funktioniert! Vielen Dank! (Originalplakat) – user198923

+0

Das wird nicht funktionieren, wenn es Zählungen gibt, die gleich sind. Die Duplikate werden nicht berücksichtigt. "UNION ALL" sollte jedoch funktionieren. –

+0

@Josh: Du hast recht: Ich habe meine Antwort entsprechend bearbeitet. Vielen Dank! – davek

8

nicht 100% sicher, was du meinst, aber vielleicht:

SELECT (SELECT COUNT(*) FROM tableA)+(SELECT COUNT(*) FROM tableB) 
Verwandte Themen