Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/03/2012, 12:28
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 18 años
Puntos: 447
Respuesta: Unir Consultas SQl HORizontal

Hola takeo_mahou:

Para el caso de las dos primeras consultas (donde tanto los JOIN's como las condiciones son las mismas) puedes utilizar un SUM condicional en lugar de un COUNT, sería más o menos así:

Código:
select AUXILIAR4,
SUM(CASE WHEN e.tipo_rpta='POTENCIALES' THEN 1 ELSE 0 END) as total_potenciales,
SUM(CASE WHEN e.tipo_rpta='Contactos Negativos' THEN 1 ELSE 0 END) as total_negativos
from teleoperacion t
inner join estadogestion e on t.idgestion=e.idgestion
inner join gestion g on t.idcliente=g.idcliente
where fecha_gestion<'23/03/2012' and 
num_gestion=(select max(num_gestion) from teleoperacion
where idcartera=t.idcartera and idcliente=t.idcliente 
and fecha_gestion<'23/03/2012'
group by idcartera,idcliente)
group by AUXILIAR4
Para el último caso podrías tratar emplear una suma semenjante, pero tendrías que dejar en la consulta generar las condiciones que se aplican a todos los casos y en el CASE-WHEN las específicas para cada caso o en su defecto hacer otro INNER JOIN sobre to consulta, es decir, algo como esto:

Código:
select AUXILIAR4,
SUM(CASE WHEN e.tipo_rpta='POTENCIALES' THEN 1 ELSE 0 END) as total_potenciales,
SUM(CASE WHEN e.tipo_rpta='Contactos Negativos' THEN 1 ELSE 0 END) as total_negativos
from teleoperacion t
inner join estadogestion e on t.idgestion=e.idgestion
inner join gestion g on t.idcliente=g.idcliente
LEFT JOIN (AQUÍ PONES LA TERCER CONSULTA) TAux 
on Taux.AUXILIAR4 = T.AUXILIAR4
where fecha_gestion<'23/03/2012' and 
num_gestion=(select max(num_gestion) from teleoperacion
where idcartera=t.idcartera and idcliente=t.idcliente 
and fecha_gestion<'23/03/2012'
group by idcartera,idcliente)
group by AUXILIAR4
Ojo, en tu post no mencionas a qué tabla pertenece el campo AUXILIAR4, es por eso que lo marco en rojo al momento de hacer el join, estoy suponiendo que está en la tabla (teleoperacion t)

Haz la prueba y nos comentas.