MVlisboa 0 Denunciar post Postado Abril 7, 2014 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
Motta 645 Denunciar post Postado Abril 7, 2014 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
MVlisboa 0 Denunciar post Postado Abril 8, 2014 Em nenhuma das tabelas tem o campo com esse tipo de ligação (nf2.data) =/ Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 8, 2014 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
MVlisboa 0 Denunciar post Postado Abril 9, 2014 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
Motta 645 Denunciar post Postado Abril 9, 2014 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
MVlisboa 0 Denunciar post Postado Abril 10, 2014 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