
Agrupar datos resultantes de una consulta UNION ALL
Publicado por Mariano José (6 intervenciones) el 18/04/2018 19:25:13
Muy buen día comunidad.....
Les agradecería su ayuda con el siguiente caso, estoy extrayendo datos de 2 consultas con la clausula UNION ALL, el resultado de estos datos los quiero agrupar para disminuir el número de líneas resultantes, cuando intento agrupar se me genera un error en la consulta abajo descrita.
Gracias por su apoyo.
Les agradecería su ayuda con el siguiente caso, estoy extrayendo datos de 2 consultas con la clausula UNION ALL, el resultado de estos datos los quiero agrupar para disminuir el número de líneas resultantes, cuando intento agrupar se me genera un error en la consulta abajo descrita.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
select
m.finca, m.lote, m.desc_finca, m.zona, m.supervisor, max(m.fecha),
sum(m.pk_mobra), sum(m.ton_est_mo), sum(m.ton_ins), sum(m.area_ins)
from
(
select
a.cd_upnivel1 as finca, a.cd_upnivel3 as lote,
(select de_upnivel1 from pimscs.upnivel1 where cd_upnivel1=a.cd_upnivel1) as desc_finca,
e.de_unid_adm as zona, c.da_mod_adm||''''-''''|| d.de_func as supervisor,
max(a.dt_operacao) as fecha, sum(a.qt_qtde) as pk_mobra, sum(a.qt_qtde)/100 as ton_est_mo,
0 as ton_ins, 0 area_ins
from pimscs.bolrur_de a
left outer join pimscs.upnivel3 b
on a.cd_safra=b.cd_safra and a.cd_upnivel1=b.cd_upnivel1 and a.cd_upnivel3=b.cd_upnivel3
left outer join pimscs.moduloadm c
on b.cd_mod_adm=c.cd_mod_adm
left outer join pimscs.funcionars d
on c.cd_func=d.cd_func
left outer join pimscs.uniadm e
on c.cd_unid_adm=e.cd_unid_adm
where
a.instancia=''''NI01''''
and a.dt_operacao between to_date(''''01/11/2017'''',''''dd/mm/yyyy'''') and to_date(''''31/03/2018'''',''''dd/mm/yyyy'''')
and a.cd_operacao in(516,546)
and a.cd_verba in(21410,21414,21416,21527,23410,23414,23416,23527)
group by a.cd_upnivel1, a.cd_upnivel3, e.de_unid_adm, c.da_mod_adm||''''-''''|| d.de_func
union all
select
loc.cd_upnivel1 as finca, loc.cd_upnivel3 as lote,
(select de_upnivel1 from pimscs.upnivel1 where cd_upnivel1=loc.cd_upnivel1) as desc_finca,
un.de_unid_adm as zona, md.da_mod_adm||''''-''''|| fn.de_func as supervisor, max(he.dt_operacao) as fecha,
0 as pk_mobra, 0 as ton_est_mo,
sum(de.qt_total) as ton_ins, sum(loc.qt_area_exec) as area_ins
from pimscs.apt_ins_he he
left outer join pimscs.apt_ins_de de
on he.no_boletim=de.no_boletim and he.instancia=de.instancia
left outer join pimscs.apt_ins_loc loc
on he.no_boletim=loc.no_boletim and he.instancia=loc.instancia
left outer join pimscs.upnivel3 up
on loc.cd_safra=up.cd_safra and loc.cd_upnivel1=up.cd_upnivel1 and loc.cd_upnivel3=up.cd_upnivel3
left outer join pimscs.moduloadm md
on md.cd_mod_adm=up.cd_mod_adm
left outer join pimscs.funcionars fn
on md.cd_func=fn.cd_func
left outer join pimscs.uniadm un
on md.cd_unid_adm=un.cd_unid_adm
where he.instancia=''''NI01''''
and he.dt_operacao between to_date(''''01/11/2017'''',''''dd/mm/yyyy'''') and to_date(''''31/03/2018'''',''''dd/mm/yyyy'''')
and he.cd_operacao in(516,532,546)
group by loc.cd_upnivel1, loc.cd_upnivel3, un.de_unid_adm, md.da_mod_adm||''''-''''||fn.de_func
) m
order by m.finca, m.lote
group by m.finca, m.lote, m.desc_finca, m.zona, m.supervisor
Gracias por su apoyo.
Valora esta pregunta


0