Ver Mensaje Individual
  #8 (permalink)  
Antiguo 22/04/2008, 09:54
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Re: Se pueden vincular 2 tablas en diferentes bases de datos en un query?

Como yo lo veo tienes dos posibles opciones:
Código:
SELECT 
  	ufv.voluntario.vol_cod,
  	SUM(ifnull(ufv.voluntario.vol_depus, 0) - ifnull(ufv.voluntario.vol_retus, 0)) AS saldo_ufv,
	saldos.voluntario.vol_cod,
  	SUM(ifnull(saldos.voluntario.vol_depus, 0) - ifnull(saldos.voluntario.vol_retus, 0)) AS saldo_us
FROM
  	ufv.voluntario INNER JOIN saldos.voluntario USING(vol_cod) 
GROUP BY
  	ufv.voluntario.vol_cod AND
	saldos.voluntario.vol_cod
HAVING
  	saldo_ufv >= 2796 AND
	saldo_us >= 500;
Este sería el caso completo conforme al código enviado.
El tema, entonces es saber por qué ambas consultas funcionan por separado, pero no juntas.
Entonces debemos concluir que si cruzamos las tablas resultandes de ambas consultas, realizadas por separado, debería haber puntos de coincidencia:
Código:
SELECT * 
FROM 
(SELECT 
  	ufv.voluntario.vol_cod AS VOL_COD,
  	SUM(ifnull(ufv.voluntario.vol_depus, 0) - ifnull(ufv.voluntario.vol_retus, 0)) AS saldo_ufv,
FROM
  	ufv.voluntario
GROUP BY
  	ufv.voluntario.vol_cod 
HAVING
  	saldo_ufv >= 2796 ) AS Tabla1
INNER JOIN 

(SELECT 
	saldos.voluntario.vol_cod as VOL_COD,
  	SUM(ifnull(saldos.voluntario.vol_depus, 0) - ifnull(saldos.voluntario.vol_retus, 0)) AS saldo_us
FROM
	saldos.voluntario
GROUP BY
	saldos.voluntario.vol_cod
HAVING
	saldo_us >= 500) AS Tabla2
USING(VOL_COD)
WHERE
saldo_us >= 500 AND saldo_ufv >= 2796
;
Si no se produce una coincidencia de esta forma, entonces es que ninguna tupla cumple con ambas condiciones a la vez.