Consulta SQL - Preciso da primeira linha

5 respostas
sql
F

Olá pessoal, sou novo com banco de dados (muito novo) e estou com um problema nesse codigo, preciso descobrir a ultima nota q o cod do produto 17310 apareceu, eu consegui fazer aparecer em ordem, mas preciso que aparece só ela, se rodar o codigo, ela é a primeira que aparece.

SELECT  (SELECT MAX (NF.DT_EMISSAO)

FROM NOTAS_FORNECEDORES )

,                NF.NR_NOTA_FISCAL_FORNECEDOR

,                P.NM_COMERCIAL

FROM    ITENS_NOTAS_FORNECEDORES INF

,              NOTAS_FORNECEDORES NF

,              PRODUTOS P

WHERE   INF.ID_NOTA_FISCAL_FORNECEDOR  = NF.ID_NOTA_FISCAL_FORNECEDOR

AND       INF.CD_PRODUTO = P.CD_PRODUTO

AND       INF.CD_PRODUTO = 17310

ORDER BY NF.DT_EMISSAO DESC;

;

5 Respostas

L

Opa eae, sou novato também mas acredito que se você utilizar o (LIMIT 1) no final do comando vai dar certo. boa sorte ae

D

Só funciona se for MySQL/MariaDB;
Se for oracle ou SQLServer, não.

L

Aaa disso eu não sabia, vlw mano

F

Pois é, eu estou usando um banco da Oracle, seria necessário usar ROWNUM =1, mas preciso fazer aparecer o código sozinho, sem auxilio do ROW.

D

E se você colocar uma cláusula que compare a data mais recente de emissão de uma NF?

WHERE...
AND NF.DT_EMISSAO = (SELECT MAX(NFI.DT_EMISSAO) FROM NOTAS_FORNECEDORES NFI)

Obviamente, combinado como o parâmetro a ser identificado.

Criado 3 de maio de 2019
Ultima resposta 3 de mai. de 2019
Respostas 5
Participantes 3