Hola estre07:
Prueba con esto
Código SQL:
Ver originalDECLARE @ANIMALES TABLE (id_animal INT, descripcion VARCHAR(20), ubicacion VARCHAR(10))
INSERT INTO @ANIMALES VALUES (1, 'Animal uno', 'EDO.MEX')
INSERT INTO @ANIMALES VALUES (2, 'Animal dos', 'EDO.MEX')
INSERT INTO @ANIMALES VALUES (3, 'Animal tres', 'EDO.MEX')
INSERT INTO @ANIMALES VALUES (4, 'Animal cuatro', 'EDO.MEX')
INSERT INTO @ANIMALES VALUES (5, 'Animal cinco', 'EDO.MEX')
INSERT INTO @ANIMALES VALUES (6, 'Animal seis', 'EDO.MEX')
DECLARE @PERROS TABLE (id_perro INT, descripcion VARCHAR(20))
INSERT INTO @PERROS VALUES (1, 'Perro uno')
INSERT INTO @PERROS VALUES (2, 'Perro dos')
INSERT INTO @PERROS VALUES (5, 'Perro cinco')
DECLARE @GATOS TABLE (id_gato INT, descripcion VARCHAR(20))
INSERT INTO @GATOS VALUES (3, 'Gato tres')
INSERT INTO @GATOS VALUES (4, 'Gato cuatro')
SELECT COUNT(*) FROM @ANIMALES A
INNER JOIN @PERROS P ON
A.ID_ANIMAL=P.ID_PERRO WHERE UBICACION LIKE 'EDO.MEX'
SELECT COUNT(*) FROM @ANIMALES A
INNER JOIN @GATOS G ON
A.ID_ANIMAL=G.ID_GATO WHERE UBICACION LIKE 'EDO.MEX'
SELECT COUNT(*) FROM @ANIMALES A
LEFT JOIN @PERROS P ON
A.ID_ANIMAL=P.ID_PERRO
LEFT JOIN @GATOS G ON
A.ID_ANIMAL=G.ID_GATO
WHERE UBICACION LIKE 'EDO.MEX' AND
(EXISTS (SELECT ID_PERRO FROM @PERROS WHERE a.id_animal = id_perro) OR
EXISTS (SELECT ID_GATO FROM @GATOS WHERE a.id_animal = id_gato))
SELECT SUM(cuenta)
FROM
(SELECT COUNT(*) AS cuenta FROM @ANIMALES A INNER JOIN @PERROS P ON
A.ID_ANIMAL=P.ID_PERRO WHERE UBICACION LIKE 'EDO.MEX'
UNION
SELECT COUNT(*) AS cuenta FROM @ANIMALES A INNER JOIN @GATOS G ON
A.ID_ANIMAL=G.ID_GATO WHERE UBICACION LIKE 'EDO.MEX') T
La parte del EXISTS en el WHERE es sólo por si tuvieras algún id_animal que no exista ni en la tabla de PERROS ni en la tabla de GATOS (en el ejemplo sería el id_animal = 6), pero podrías omitirla si tienes la seguridad de que el id_animal exista en al menos una de las dos tablas.
En la consulta que te propone el compañero estre07 lo único que falta es asignarle un alias a la consulta que hace la UNION.
Es cuestión que pruebes ambas soluciones para que veas cual es más eficiente.
Saludos
Leo.