Página 1 de 1
Ultimo registro da tabela
Enviado: Qua, 04 Jan 2017 11:07 am
por gab26
Bom dia a todos, sou novo aqui, busco uma ajuda que não estou conseguindo resolver espero que alguém consiga me ajudar.
preciso valorizar o inventario da empresa em que trabalho, pra isso vou pegar o ultimo valor dos itens, estava usando o MAX, mas percebi que se fizesse isso ele iria me retorna o maior preço e não o ultimo cadastrado na tabela então mudei o MAX pra coluna de data, só que ele me traz varias linhas de resultados, e preciso apenas da ultima mas ainda com o campo de código e valor dos itens, pra depois jogar em uma planilha, vou postar o código aqui em baixo
código:
Selecionar tudo
select irec.pro_in_codigo Codigo, irec.rci_re_vlunitario Valor_unitario, max(irec.rcb_dt_documento) Data
from mgadm.est_itensreceb irec
where irec.pro_in_codigo = 701
group by irec.pro_in_codigo, irec.rci_re_vlunitario
peço por favor que se puderem me deem uma luz
obrigado.
Re: Ultimo registro da tabela
Enviado: Qua, 04 Jan 2017 12:28 pm
por spernega
Boa tarde,
Veja se assim ajuda
Selecionar tudo
select irec.pro_in_codigo Codigo, irec.rci_re_vlunitario Valor_unitario, irec.rcb_dt_documento Data
from mgadm.est_itensreceb irec
where irec.rcb_dt_documento = (select max(rcb_dt_documento)
from mgadm.est_itensreceb
and pro_in_codigo = 701)
and irec.pro_in_codigo = 701;
Desde que não tenha mais de um lançamento no mesmo dia para produto, ou que a data seja datetime.
Re: Ultimo registro da tabela
Enviado: Qua, 04 Jan 2017 1:12 pm
por gab26
spernega escreveu:Boa tarde,
Veja se assim ajuda
Selecionar tudo
select irec.pro_in_codigo Codigo, irec.rci_re_vlunitario Valor_unitario, irec.rcb_dt_documento Data
from mgadm.est_itensreceb irec
where irec.rcb_dt_documento = (select max(rcb_dt_documento)
from mgadm.est_itensreceb
and pro_in_codigo = 701)
and irec.pro_in_codigo = 701;
Desde que não tenha mais de um lançamento no mesmo dia para produto, ou que a data seja datetime.
spernega, Boa tarde
cara muito obrigado me ajudou de mais, não imaginava que era tão simples e que ia ser respondido tão rapido valeu mesmo
Re: Ultimo registro da tabela
Enviado: Qua, 04 Jan 2017 1:22 pm
por gab26
spernega, Boa tarde
só uma coisa eu preciso de vários itens ao mesmo tempo, não sabia que ia mudar o resultado final desculpa,
mas pelo o que pude observar ao colocas todos os itens, ele traz só o item com a ultima data que seria hoje.
consegue me ajudar?
valeu obrigado.
Re: Ultimo registro da tabela
Enviado: Qua, 04 Jan 2017 1:31 pm
por spernega
Claro, veja se da certo
Selecionar tudo
select irec.pro_in_codigo Codigo, irec.rci_re_vlunitario Valor_unitario, irec.rcb_dt_documento Data
from mgadm.est_itensreceb irec
where irec.rcb_dt_documento = (select max(rcb_dt_documento)
from mgadm.est_itensreceb
and pro_in_codigo = irec.pro_in_codigo);
Re: Ultimo registro da tabela
Enviado: Qua, 04 Jan 2017 2:43 pm
por gab26
muito obrigado resolvido o problema
Re: Ultimo registro da tabela
Enviado: Seg, 26 Nov 2018 1:49 pm
por Ericke_Cruz
Spernega, não sei se ainda está por aí... mas montei o código exatamente da mesma forma que você havia orientado, porém está retornando o seguinte erro:
ORA-00907: parêntese direito não encontrado
Abaixo segue o código:
Selecionar tudo
SELECT *
FROM E210MVP A
WHERE A.DATMOV = (SELECT MAX(DATMOV)
FROM E210MVP
AND CODPRO = A.CODPRO)
AND A.ESTMOV = 'NO'
AND A.FILDEP = '201'
Quando mudo o parêntese direito de lugar, conforme abaixo, ele até me traz algum resultado, mas ainda não é o que preciso, pois neste caso ele busca a última data de movimento e retorna somente o que movimentou naquela data, eu precisava que ele trouxesse o ultimo movimento de cada código independente de em qual data ele ocorreu.
Selecionar tudo
SELECT *
FROM E210MVP A
WHERE A.DATMOV = (SELECT MAX(DATMOV)
FROM E210MVP)
AND CODPRO = A.CODPRO
AND A.ESTMOV = 'NO'
AND A.FILDEP = '201'
Peço desculpas se não me fiz entender, primeiro post...
Re: Ultimo registro da tabela
Enviado: Seg, 26 Nov 2018 1:56 pm
por spernega
Boa tarde, to por aqui ainda sim, meio afastado mas na ativa.
Tenta colocar um alias na sub-query
Selecionar tudo
SELECT *
FROM E210MVP A
WHERE A.DATMOV = (SELECT MAX(b.DATMOV)
FROM E210MVP b
AND b.CODPRO = A.CODPRO)
AND A.ESTMOV = 'NO'
AND A.FILDEP = '201'
Re: Ultimo registro da tabela
Enviado: Seg, 26 Nov 2018 2:47 pm
por DanielNN
Boa tarde,
o problema é que na tua subconsulta não existe a cláusula WHERE. Existe um AND sem o WHERE.
Re: Ultimo registro da tabela
Enviado: Seg, 26 Nov 2018 3:40 pm
por Ericke_Cruz
DanielNN escreveu:Boa tarde,
o problema é que na tua subconsulta não existe a cláusula WHERE. Existe um AND sem o WHERE.
Realmente não tinha percebido... Valeu!!!