Oracle - Joinear dos Querys

 
Vista:

Joinear dos Querys

Publicado por Juan (2 intervenciones) el 03/01/2018 21:52:49
Tengo estas dos querys (q1,q2), me esoty volviendo loco para joinearlas.
Necesito que se liste soloen los que el Q2.Promedio sea mayor al campo Q1.CDR_Filtrados.
Cualquier ayuda infinitamente agradecida.


q1
1
2
3
4
5
SELECT DISTINCT S.NAME AS STREAM, N.NAME AS NODE, R.FILTERED as CDR_Filtrados, R.AUDITSLOTSYSTEM
FROM EL_REPORTING_COUNTERS R, EL_STREAMS S, EL_NODES N
WHERE R.STREAMID=S.STREAMID AND R.NODEID=N.NODEID
AND R.AUDITSLOTSYSTEM = to_char(SYSDATE)
order by NODE desc;


Esta devuelve el promedio
q2
1
2
3
4
5
select N.NAME, AVG(R.FILTERED) as Promedio
from EL_REPORTING_COUNTERS R,EL_STREAMS S, EL_NODES N
where R.STREAMID=S.STREAMID AND R.NODEID=N.NODEID
GROUP BY N.NAME
ORDER BY N.NAME DESC;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 499
Oro
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

Joinear dos Querys

Publicado por Rafael (328 intervenciones) el 09/01/2018 10:30:25
Hola

Un par de detalles tu segundo query NO cuenta con el filtro AND R.AUDITSLOTSYSTEM = to_char(SYSDATE)
Es correcto ????

Ahora bien ...

Hay dos opciones:

Opcion 1

Si la condicion de la fecha (muy mal hecho transformar a char un sysdate) es la misma para ambos queries se pueden unificar en una sola haciendo uso de AVG() OVER (PARTITION BY)

Opcion 2
Si es correcta que las dos condiciones sean diferentes

Puedes unirlos facilmente con algo parecido a esto:
1
2
3
4
SELECT *
FROM (SELECT .... QUERY_1) q1
     JOIN (SELECT ..... QUERY_2) q2
     ON q1.CAMPO_ID = q2.CAMPO_ID

Vaya los metes entre parentesis y aplicas el JOIN que supongo sera por NAME.
Otra recomendcion NO pongas entre parentesis los ORDER si no hasta al final.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar