Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

MVlisboa

Usando subconsultas

Recommended Posts

Como faço para pegar o numero da última NF lançada na Tabela PCMOV?


Preciso do valor, data da emissão e o numero da última NF lançada... Tendei usar o MAX(NUMNOTA), mas como o fornecedor em questão vem de três lugares, os números das NF´s não seguem a mesma ordem, então, não podemos dizer que tal nota foi a última NF lançada, apenas por ela ter o numero maior.


Espero que tenham entendido e que possam me ajudar. Desde já, agradeço!



select

pcprodut.codfornec,
pcprodut.codmarca,
pcprodut.codprod,
pcprodut.descricao,
pcest.vlultpcompra,
pcest.qtindeniz,
pcest.qtultent,
pcest.dtemissaoultent,
(select max(numnota)
from pcmov
where codprod = pcprodut.codprod
and dtcancel is null and codoper = 'E') as Numero_NF -- Sub-consult
from pcprodut
inner join pcest on (pcprodut.codprod = pcest.codprod)
where qtindeniz >= 0.01 and codfornec = 22
order by codmarca

Compartilhar este post


Link para o post
Compartilhar em outros sites

algo como (simplificando)

nf mais recente por cnpj

select *
from   nota_fiscal nf1
where nf1.data = (select max(nf2.data)
                  from   nota_fiscal nf2
                  where nf2.cnpj= nf1.cnpj)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi só um exemplo de como obter a "maior linha" , no caso seria numnota

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi o que quis dizer, mas como eu falei anteriormente, o fato no numero da NF ser o maior, não significa que ela tenha sido lançada por último, pois a depender do estado de origem, o numero de série, muda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Busque a maior dentre isto (estado de origem, o numero de série)

 

algo assim

select *
from   nota_fiscal nf1
where nf1.data = (select max(nf2.data)
                  from   nota_fiscal nf2
                  where nf2.estado_origem = nf1.estado_origem
                  and      nf2.numero-serie = nf1.numero-serie )

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui da seguinte forma...

 

select
pcprodut.codfornec,
pcprodut.codmarca,
pcprodut.codprod,
pcprodut.descricao,
pcest.vlultpcompra,
pcest.qtindeniz,
pcest.qtultent,
pcest.dtemissaoultent,
pcnfent.numnota,
pcnfent.numtransent
from pcprodut
inner join pcest on (pcprodut.codprod = pcest.codprod)
left join pcnfent on (pcnfent.numtransent = pcest.numtransentultent)
where qtindeniz >= 0.01 and pcprodut.codfornec = 22

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.