Ir para conteúdo
Fórum Script Brasil

Jedais

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Posts postados por Jedais

  1. 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

  2. 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

  3. Boa tarde,

    Gostaria de uma ajuda para otimizar a query abaixo. O resultado é de 9000 linhas em =~8/9 min. Obrigado.

    SELECT DISTINCT (N.IDNOTA) AS ID_NOTA_FISCAL,
    (N.CDNOTA) AS NO_NOTA_FISCAL,
    (C.CDPARCEIROCOMERCIAL) AS COD_COMPANHIA,
    (C.NMPARCEIROCOMERCIAL) AS NOME_COMPANHIA,
    (T.CDTRANSPORTADORA) AS COD_TRANSP,
    (T.DSAPELIDOTRANSPORTADORA) AS NOME_TRANSP,
    CONVERT (VARCHAR,N.DTEMBARQUE,103) AS DATA_EMBARQUE,
    (RR.DSREFERENCIA) AS ROMANEIO_TIPO_VIAGEM,
    (EQ.CDEQUIPAMENTO) AS COD_EQUIPAMENTO,
    (D.CDPARCEIROCOMERCIAL) AS COD_DESTINATARIO,
    (D.NMPARCEIROCOMERCIAL) AS NOME_DESTINATARIO,
    (CID.NMCIDADE) AS CID_DESTINO,
    (UF.CDUF) AS UF_DESTINO,
    (R.CDROMANEIO) AS ROMANEIO,
    ROUND (SUM(I.VRNTAITEM),2)/ROUND(COUNT(DISTINCT I.IDITEM),2) AS VR_NOTA_FISCAL,
    ROUND (SUM(LNP.VRFRETERATEIOPREVISTO),2)/ROUND (COUNT(DISTINCT I.IDITEM),2) AS VR_FR_PREVISTO,
    ROUND (SUM(I.QTPESOBRUTO),2)/ROUND (COUNT(DISTINCT I.IDITEM),2) AS QT_PESO_BRUTO,
    ROUND (SUM(I.QTVOLUME),2)/ROUND (COUNT(DISTINCT I.IDITEM),2) AS QT_VOLUMES,
    (RN.DSREFERENCIA) AS CANAL_VENDAS,
    (E.DSEVENTO) AS EVENTO,
    (N.DSLOTE) AS LOTE,
    ROUND (SUM(LNP.VRFRETERATEIOCOBRADO),2)/ROUND (COUNT(DISTINCT I.IDITEM),2) AS VR_FR_COBRADO,
    ROUND (SUM(LNP.VRAPAGARCOBRADO),2)/ROUND (COUNT(DISTINCT I.IDITEM),2) AS VR_FR_A_PAGAR_COBRADO,
    (TN.CDTIPONOTA) AS COD_TIPO_NOTA,
    (TN.DSTIPONOTA) AS DESC_TIPO_NOTA,
    (UFR.DSUFREGIAO) AS REGIAO_UF,
    CASE N.TPFRETE WHEN 1 THEN 'CIF' WHEN 2 THEN 'FOB' END AS TIPO_FRETE
    FROM GKOSCF.FMNOTA AS N LEFT JOIN GKOSCF.FCTRANSP AS T ON N.IDTRANSPORTADORA = T.IDTRANSPORTADORA
    LEFT JOIN GKOSCF.FCPARCOM AS C ON N.IDPAREMITENTE = C.IDPARCEIROCOMERCIAL
    LEFT JOIN GKOSCF.FCPARCOM AS D ON N.IDPARDESTREMET = D.IDPARCEIROCOMERCIAL
    LEFT JOIN GKOSCF.FRCONNTA AS RLN ON N.IDNOTA = RLN.IDNOTA
    LEFT JOIN GKOSCF.FMCONHEC AS L ON RLN.IDCONHECIMENTO = L.IDCONHECIMENTO
    LEFT JOIN GKOSCF.FCCIDADE AS CID ON L.IDCIDDESTINO = CID.IDCIDADE
    LEFT JOIN GKOSCF.FCUF AS UF ON CID.IDUF = UF.IDUF
    LEFT JOIN GKOSCF.FCEVENTO AS E ON L.IDEVENTOPRINCIPAL = E.IDEVENTO
    LEFT JOIN GKOSCF.FRCONOCO AS RLO ON L.IDCONHECIMENTO = RLO.IDCONHECIMENTO
    LEFT JOIN GKOSCF.FMOCORRE AS O ON RLO.IDOCORRENCIA = O.IDOCORRENCIA
    LEFT JOIN GKOSCF.FCTPOOCO AS TPO ON TPO.IDTIPOOCORRENCIA = O.IDTIPOOCORRENCIA
    LEFT JOIN GKOSCF.FMCONRAT AS LNP ON N.IDNOTA = LNP.IDNOTA
    LEFT JOIN GKOSCF.FCUFREG AS UFR ON UF.IDUFREGIAO = UFR.IDUFREGIAO
    LEFT JOIN GKOSCF.FMROMANE AS R ON N.IDROMANEIO = R.IDROMANEIO
    LEFT JOIN GKOSCF.FCEQUIPA AS EQ ON R.IDEQUIPAMENTO = EQ.IDEQUIPAMENTO
    LEFT JOIN GKOSCF.FMNTAITM AS I ON N.IDNOTA = I.IDNOTA
    LEFT JOIN GKOSCF.FCTPNOTA AS TN ON N.IDTIPONOTA = TN.IDTIPONOTA
    LEFT JOIN GKOSCF.FMREFER AS RN ON N.IDNOTA = RN.IDMOVIMENTO
    LEFT JOIN GKOSCF.FMREFER AS RR ON R.IDROMANEIO = RR.IDMOVIMENTO
    WHERE L.IDEVENTOPRINCIPAL = '1' AND
    L.DTEMBARQUE BETWEEN '1/1/2015' AND '2/1/2015'
    GROUP BY N.IDNOTA, N.CDNOTA, C.CDPARCEIROCOMERCIAL, C.NMPARCEIROCOMERCIAL, T.CDTRANSPORTADORA,
    T.DSAPELIDOTRANSPORTADORA, N.DTEMBARQUE, RR.DSREFERENCIA, RN.DSREFERENCIA, EQ.CDEQUIPAMENTO,
    D.CDPARCEIROCOMERCIAL, D.NMPARCEIROCOMERCIAL, CID.NMCIDADE, UF.CDUF, R.CDROMANEIO,
    N.VRPESOBRUTO, N.QTVOLUME, E.DSEVENTO, N.DSLOTE, TN.CDTIPONOTA, TN.DSTIPONOTA, UFR.DSUFREGIAO, N.TPFRETE
    ORDER BY N.CDNOTA ASC
×
×
  • Criar Novo...