2009-11-13 25 views
6

Estoy tratando de ejecutar múltiples consultas en varias tablas, similar a "seleccionar conteo (*) desde la Tabla A donde x = 1" por tabla.¿Cómo se suman varias consultas SQL juntas?

Lo que me gustaría hacer, es conseguir todos los valores de la cuenta (*) que se devuelven y resumirlas en un solo valor ...

¿Alguna idea?

+0

¿Quieres hacer esto en SQL? O en su lenguaje de llamada: poca información sería útil. – Paddy

Respuesta

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 

normalmente solo necesita el alias en la primera selección cuando usa una unión.

+0

¡Esto funcionó para mí! ¡Gracias! (póster original) – user198923

+0

Eso no funcionará si hay recuentos que sean iguales. Los duplicados no serán incluidos. Sin embargo, hacer 'UNION ALL' debería funcionar. –

+0

@Josh: tiene toda la razón: he editado mi respuesta en consecuencia. ¡Gracias! – davek

8

No es 100% seguro de lo que quieres decir, pero tal vez:

SELECT (SELECT COUNT(*) FROM tableA)+(SELECT COUNT(*) FROM tableB) 
Cuestiones relacionadas