Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/01/2011, 09:34
juanorozco
 
Fecha de Ingreso: noviembre-2010
Mensajes: 5
Antigüedad: 13 años, 5 meses
Puntos: 0
Pregunta consulta en varias tablas misma informacion

saludos amigos...
Tengo un pequeño inconveniente en la empresa que laboro necesitan conocer transacciones realizadas por los vendedores para los diferentes productos que tiene la empresa, bàsicamente cada producto sube sobre una tabla diferente el problema es que los campos tiene nombre diferente, por ejemplo en uno el vendedor se identifica como cod_vendedor y en otra tabla se identifica como asesor por lo tanto la consulta que he lanzado ha sido la siguiente:

select cod_vendedor , fecha,cod_oficina,sum(total_pagado),
sum (CASE WHEN (hora between '06:00:00' and '07:00:00' ) THEN total_pagado else 0 end ) as "6 a 7",
sum (CASE WHEN (hora between '07:00:01' and '08:00:00' ) THEN total_pagado else 0 end ) as "7 a 8"
from producto1 where fecha BETWEEN to_date(:fecha_INI,'dd-mm-yyyy') AND to_date(:fecha_FIN,'dd-mm-yyyy')
and hora between :hora1 and :hora2
AND COD_STATUS='I'
group by cod_vendedor, fecha,cod_oficina
order by cod_oficina, fecha,cod_vendedor asc

aclaro que por motivos de extension no le agrege toddas las horas laborales de la empresa, preo la funcion sum se extiende hasta las 22 y la parte hora between :hora1 and :hora2 premite escoger un rango en ese horario laborado

como tenemos seis productos diferentes tendria que sacar la misma consulta con los nombres de los respectivos campos seis veces y como lo que le interesa a la parte comercial es conocer productividad de los vendedores, mas no si se vende cierto producto en cierta hora, necesitaria poder consultar todas las tablas con los mismos campos aunque con nombres distintos en los campos, es algo asi como una especie de union all solo que no puedo hacer el group by debido a la diferencia de los nombres en los campos, aca pego la segunda consulta de otro producto con los nombres de los campos.

select cod_asesor, fecha_solicitud,cod_oficina,sum(valor_recarga) ,
sum (CASE WHEN (hora_solicitud between '06:00:00' and '07:00:00' ) THEN valor else '0' end ) as "6 a 7",
sum (CASE WHEN (hora_solicitud between '07:00:01' and '08:00:00' ) THEN valor else '0' end ) as "7 a 8
from com_mensaje_recarga where fecha_solicitud BETWEEN to_date(:fecha_solicitud_INI,'dd-mm-yyyy')
AND to_date(:fecha_solicitud_FIN,'dd-mm-yyyy')and hora_solicitud between :hora_solicitud1 and :hora_solicitud2
AND CODIGO_RESPUESTA='000'
group by cod_asesor, fecha_solicitud,cod_oficina
order by cod_oficina, fecha_solicitud,cod_asesor asc

No se si fui lo suficientemente claro, basicamente necesito la misma informacion de diferentes tablas con diferentes nombres en sus campos

Última edición por juanorozco; 17/01/2011 a las 09:46