PostgreSQL - Query union de consultas

 
Vista:

Query union de consultas

Publicado por Rafael (15 intervenciones) el 26/12/2017 18:57:27
Buenos Dias.

Tengo mi query
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
(SELECT sno_hpersonalnomina.codnom, count(distinct(sno_hpersonalnomina.codper)), trunc(cast(sum(ABS(sno_hsalida.valsal)) as numeric), 2) as asigna
from sno_hpersonalnomina
inner JOIN sno_hsalida ON sno_hpersonalnomina.codnom = sno_hsalida.codnom
AND sno_hpersonalnomina.codper = sno_hsalida.codper
and sno_hpersonalnomina.codperi= sno_hsalida.codperi
where sno_hpersonalnomina.codper::int= 116052 and sno_hpersonalnomina.codperi::int= 019
and sno_hpersonalnomina.codnom::integer <= 8 and sno_hpersonalnomina.staper::int=1 and sno_hsalida.tipsal='A'
group by sno_hpersonalnomina.codnom)
UNION all
(SELECT sno_hpersonalnomina.codnom, count(distinct(sno_hpersonalnomina.codper)), trunc(cast(sum(ABS(sno_hsalida.valsal)) as numeric), 2) as deducciones
from sno_hpersonalnomina
inner JOIN sno_hsalida ON sno_hpersonalnomina.codnom = sno_hsalida.codnom
AND sno_hpersonalnomina.codper = sno_hsalida.codper
and sno_hpersonalnomina.codperi= sno_hsalida.codperi
where sno_hpersonalnomina.codper::int= 116052 and sno_hpersonalnomina.codperi::int= 019
and sno_hpersonalnomina.codnom::integer <= 8 and sno_hpersonalnomina.staper::int=1 and (sno_hsalida.tipsal='D' or sno_hsalida.tipsal='P1')
group by sno_hpersonalnomina.codnom)

Como hago para que el resultado del segundo query me lo muestre en otra columna y no en otra fila?

Gracias por la orientación
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

Query union de consultas

Publicado por martin (121 intervenciones) el 28/12/2017 12:03:29
COn el union que da feo, por que tendrias que crear en ambos selects las mismas columnas del otro select pero vacias,usando alias y demas.

Lo correcto es que en cada select agregues una columna que se llame "origen" para saber que registro corresponde cada tupla.

SELECT sno_hpersonalnomina.codnom, 'a' AS ORIGEN FROM a
UNION ALL
SELECT sno_hpersonalnomina.codnom, 'b' AS ORIGEN FROM b
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