Ir para conteúdo
Fórum Script Brasil
  • 0

Último Registro


Jedais

Pergunta

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 para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...