Select trazer maior da coluna

0 respostas
postgresqloraclemysqlsql
brizola727

Olá, eu tenho um select com inner join subselect e assim por diante. Mas, a partir desse resultado, gostaria que me trouxesse o maior registro na coluna Oid_Billing. abaixo é o exemplo de select e o exemplo do resultado que traz para que seja mais fácil entender o resultado que eu quero.

select
address_block_uc, address_complement_uc, u.name_uc
,m.description_meter, m.serial_number_meter, lst.date_read date_read, value_read
,tm.name_type_meter, lst.concentrator, lst.port
,m.oid_uc,m.oid_meter, m.type_constant, f.first_measur, lst.id_system, ib.read0, ib.oid_individual_billing
,get_correction_factor( lst.id_system,m.oid_meter,m.oid_uc,lst.date_read ) corr_factor
,get_correction_pulse( lst.id_system,lst.concentrator,lst.port,lst.date_read ) corr_pulse
,nvl(f.first_measur,0) + ( i.value_read * m.type_constant ) leitura
from (select id_system, concentrator, port, date_read, m.oid_uc, m.oid_meter
from rs_individual_read i, rs_uc u, rs_meter m, rs_counters c
where m.oid_meter = c.oid_meter
and c.concentrator_counters = i.concentrator
and c.port_counters = i.port
and date_read between to_date (‘01/03/2017 23:00:00’,‘dd/MM/yyyy HH24:MI:SS’) and to_date (‘25/03/2017 23:00:00’,‘dd/MM/yyyy HH24:MI:SS’)
and date_read between c.dt_init and c.dt_end
and date_read between m.dt_init and m.dt_end
and u.oid_system=i.id_system
and m.oid_uc=u.oid_uc
and i.id_system=531
and m.oid_meter=69451
group by id_system, concentrator, i.port, date_read, m.oid_uc, m.oid_meter
) lst
inner join rs_individual_read i
on (i.id_system = lst.id_system
and i.date_read = lst.date_read
and i.concentrator = lst.concentrator
and i.port = lst.port)
inner join rs_counters c
on (c.concentrator_counters = lst.concentrator
and c.port_counters = lst.port
and lst.date_read between c.dt_init and c.dt_end)
inner join rs_meter m
on (m.oid_meter = c.oid_meter
and m.oid_meter = lst.oid_meter
and lst.date_read between m.dt_init and m.dt_end)
inner join rs_uc u
on (u.oid_system = lst.id_system
and u.oid_uc = lst.oid_uc
and u.oid_uc = m.oid_uc)
inner join rs_type_meter tm
on (m.oid_type_meter = tm.oid_type_meter)
inner join rs_individual_billing ib
on (ib.serial_number = m.serial_number_meter)
left outer join rs_first_measurs f
on (f.oid_meter = m.oid_meter)
order by date_read desc,address_block_uc,address_complement_uc,name_uc

Os resultados:

DATE_READ OID_INDIVIDUAL_BILLING LEITURA
20/03/2017 23:00 8500 800
20/03/2017 23:00 8791 800
20/03/2017 23:00 8628 800
19/03/2017 23:00 8500 450,971
19/03/2017 23:00 8628 450,971
19/03/2017 23:00 8791 450,971
19/03/2017 23:00 8791 450,653
19/03/2017 23:00 8500 450,653
19/03/2017 23:00 8628 450,653
19/03/2017 12:00 8628 450,653
19/03/2017 12:00 8791 450,653

O resultado disso traz alguns agendamentos repetidos no relatório, e para que ele não seja repetido, gostaria que o resultado trouxesse somente os dados maiores da coluna oid_individual_billing da mesma data, por exemplo, na data 19/03/2017 23 : 00hs temos 3 registros, no entanto, eu gostaria que ele mostrasse apenas a linha 8791, que é o maior id da coluna oid_individual_billing para esta data … alguém poderia me ajudar?

Eu resumi as colunas para uma postagem fácil.

Desculpe meu inglês do google tradutor

Tks!

Criado 25 de setembro de 2017
Respostas 0
Participantes 1