Jump to content
Fórum Script Brasil
  • 0

Último Registro


Jedais

Question

Boa tarde,

Preciso executar uma consulta buscando campos da tabela de notas fiscais (tabela N), bem como as ocorrências (tabela O) e transportadora (tabela T) associadas a ela.

Como uma nota fiscal pode conter mais de uma ocorrência (Tabela N - Tabela O : 1-N) quero retornar somente a última ocorrência associada, ou seja, a que contém maior ID (O.IDOCORRENCIA).

Alguém consegue me ajudar? Segue consulta abaixo:

 

SELECT DISTINCT
(N.IDNOTA) AS ID_NF,
CONVERT (VARCHAR,N.DTEMISSAO,103) AS DT_EMISSAO,
(T.DSAPELIDOTRANSPORTADORA) AS TRANSPORTADORA,
(O.IDOCORRENCIA) AS ID_OCORRENCIA,
(TPO.DSTIPOOCORRENCIA) AS OCORRENCIA,
FROM  GKOSCF.FMNOTA N
LEFT JOIN GKOSCF.FMOCORRE O ON  N.IDNOTA = O.IDMOVIMENTO
LEFT JOIN GKOSCF.FCTRANSP T ON N.IDTRANSPORTADORA = T.IDTRANSPORTADORA
LEFT JOIN GKOSCF.FCTPOOCO TPO ON O.IDTIPOOCORRENCIA = TPO.IDTIPOOCORRENCIA
WHERE N.DTEMISSAO > '01/01/2017'
AND N.CDSERIE = '3'

O resultado retornado atualmente é:

58aca8f911507_Snap2017-02-21at17_43_51.jpg.0c46c9988b98e600c01f4d9bbb9558cc.jpg

Obrigado

Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

tenta ai

 

SELECT DISTINCT TOP 1 
(N.IDNOTA) AS ID_NF,
CONVERT (VARCHAR,N.DTEMISSAO,103) AS DT_EMISSAO,
(T.DSAPELIDOTRANSPORTADORA) AS TRANSPORTADORA,
(O.IDOCORRENCIA) AS ID_OCORRENCIA,
(TPO.DSTIPOOCORRENCIA) AS OCORRENCIA,
FROM  GKOSCF.FMNOTA N
LEFT JOIN GKOSCF.FMOCORRE O ON  N.IDNOTA = O.IDMOVIMENTO
LEFT JOIN GKOSCF.FCTRANSP T ON N.IDTRANSPORTADORA = T.IDTRANSPORTADORA
LEFT JOIN GKOSCF.FCTPOOCO TPO ON O.IDTIPOOCORRENCIA = TPO.IDTIPOOCORRENCIA
WHERE N.DTEMISSAO > '01/01/2017'
AND N.CDSERIE = '3' 
ORDER BY O.IDOCORRENCIA DESC

 

Link to post
Share on other sites
  • 0
18 horas atrás, .Andreia. disse:

tenta ai

 

SELECT DISTINCT TOP 1 
(N.IDNOTA) AS ID_NF,
CONVERT (VARCHAR,N.DTEMISSAO,103) AS DT_EMISSAO,
(T.DSAPELIDOTRANSPORTADORA) AS TRANSPORTADORA,
(O.IDOCORRENCIA) AS ID_OCORRENCIA,
(TPO.DSTIPOOCORRENCIA) AS OCORRENCIA,
FROM  GKOSCF.FMNOTA N
LEFT JOIN GKOSCF.FMOCORRE O ON  N.IDNOTA = O.IDMOVIMENTO
LEFT JOIN GKOSCF.FCTRANSP T ON N.IDTRANSPORTADORA = T.IDTRANSPORTADORA
LEFT JOIN GKOSCF.FCTPOOCO TPO ON O.IDTIPOOCORRENCIA = TPO.IDTIPOOCORRENCIA
WHERE N.DTEMISSAO > '01/01/2017'
AND N.CDSERIE = '3' 
ORDER BY O.IDOCORRENCIA DESC

 

Boa tarde Andreia,

Agradeço pela ajuda, porém, com este código a consulta retorna apenas a última nota fiscal da base de dados, quando deveria retornar apenas a última ocorrência associada a cada nota fiscal.

Obrigado

Link to post
Share on other sites
  • 0

Cara tenta uma dessas opções.

1)
SELECT DISTINCT
(N.IDNOTA) AS ID_NF,
CONVERT (VARCHAR,N.DTEMISSAO,103) AS DT_EMISSAO,
(T.DSAPELIDOTRANSPORTADORA) AS TRANSPORTADORA,
(O2.IDOCORRENCIA) AS ID_OCORRENCIA,
(TPO.DSTIPOOCORRENCIA) AS OCORRENCIA,
FROM  GKOSCF.FMNOTA N
LEFT JOIN (select TOP 1 O.IDOCORRENCIA FROM GKOSCF.FMOCORRE ORDER BY O.IDOCORRENCIA DESC) O2 ON N.IDNOTA = O2.IDMOVIMENTO
LEFT JOIN GKOSCF.FCTRANSP T ON N.IDTRANSPORTADORA = T.IDTRANSPORTADORA
LEFT JOIN GKOSCF.FCTPOOCO TPO ON O.IDTIPOOCORRENCIA = TPO.IDTIPOOCORRENCIA
WHERE N.DTEMISSAO > '01/01/2017'
AND N.CDSERIE = '3'

 

2)
SELECT DISTINCT TOP 1 
(N.IDNOTA) AS ID_NF,
CONVERT (VARCHAR,N.DTEMISSAO,103) AS DT_EMISSAO,
(T.DSAPELIDOTRANSPORTADORA) AS TRANSPORTADORA,
(O.IDOCORRENCIA) AS ID_OCORRENCIA,
(TPO.DSTIPOOCORRENCIA) AS OCORRENCIA,
FROM  GKOSCF.FMNOTA N
LEFT JOIN GKOSCF.FMOCORRE O ON  N.IDNOTA = O.IDMOVIMENTO
LEFT JOIN GKOSCF.FCTRANSP T ON N.IDTRANSPORTADORA = T.IDTRANSPORTADORA
LEFT JOIN GKOSCF.FCTPOOCO TPO ON O.IDTIPOOCORRENCIA = TPO.IDTIPOOCORRENCIA
WHERE N.DTEMISSAO > '01/01/2017'
AND N.CDSERIE = '3' AND O.DATAOCORRECIA = (SELECT MAX(O.IDOCORRENCIA) FROM GKOSCF.FMOCORRE O2 where O2.IDOCORRENCIA = O.IDOCORRENCIA)
ORDER BY O.IDOCORRENCIA DESC
 

abraço.

 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148847
    • Total Posts
      644845
×
×
  • Create New...