none
Dificuldades com Query RRS feed

  • Pergunta

  • Olá,

    Estou com uma certa dificuldade em uma query que estou criando aqui no trabalho, aonde preciso encontrar notas fiscais que uma empresa emitiu, e que foram canceladas. O resultado da query não trás nenhum valor, salvo caso eu tire o Where de data de emissão, que aparece uma de 2016. O problema é que essa empresa está sempre cancelando notas, por isso tenho certeza que essa não é o único valor que deveria estar aparecendo.

    SELECT DISTINCT t1.NUMERONF, t1.NROEMPRESA, t1.STATUSNFE, t1.DTAEMISSAO, 
    t1.DTASAIDA, t1.DTARECEBIMENTO, t1.DTAENTRADA, t1.DTACANCELAMENTO, 
    t1.OBSERVACAOLF, t1.OBSERVACAO, t1.MOTIVOCANCELOU, t2.NOMERAZAO, t3.VLRITEM
    FROM MLF_NOTAFISCAL t1
    INNER JOIN GE_PESSOA t2 ON t1.SEQPESSOA = t2.SEQPESSOA
    INNER JOIN MLF_NFITEM t3 ON t2.SEQPESSOA = t3.SEQPESSOA
    WHERE t3.NROEMPRESA = 90
    AND t3.NUMERONF = t1.NUMERONF
    AND t1.USUCANCELAMENTO IS NOT NULL
    AND DTAEMISSAO >= '01/01/2017'
    AND t2.NOMERAZAO LIKE '%BOA%';


    segunda-feira, 18 de setembro de 2017 11:59

Respostas

  • Lucas, bom dia

    Também dê uma olhada no relacionamento do seu Inner join.. talvez você tenha outras chaves que não está passando como parâmetro.

    Outra sugestão.. vejo que vc passa uma NFITEM e pode exitir notas (servico) que não tem item.. então recomendo que use LEFT JOIN ao inves do INNER JOIN.


    Carlos Henrique Quadrado - Lençóis Paulista - SP - Brasil

    ITIL v3 | ITMP |

    Caso a resposta tenha sido útil clique em Votar. Caso a resposta tenha resolvido sua necessidade marque como Resposta. smile

    Please use Vote As Helpful if a post was useful or use Marked as Answer if my post solved your necessity.  smile

    segunda-feira, 18 de setembro de 2017 13:06
  • Bom dia, Talvez  seu problema seja no formado da data, vc deve passar no mesmo formato que está armazenado , ou seus parametros

    Where estão inconsistentes , acredito que o trecho (AND t3.NUMERONF = t1.NUMERONF) é desnecessário

    O que tem armazenado as colunas  STATUSNFE,DTACANCELAMENTO,MOTIVOCANCELOU

    faça alguns testes assim para saber se o seu where está correto

    SELECT DISTINCT
            t1.NUMERONF ,
            t1.NROEMPRESA ,
            t1.STATUSNFE ,
            t1.DTAEMISSAO ,
            t1.DTASAIDA ,
            t1.DTARECEBIMENTO ,
            t1.DTAENTRADA ,
            t1.DTACANCELAMENTO ,
            t1.OBSERVACAOLF ,
            t1.OBSERVACAO ,
            t1.MOTIVOCANCELOU ,
            t2.NOMERAZAO ,
            t3.VLRITEM
    FROM    MLF_NOTAFISCAL t1
            INNER JOIN GE_PESSOA t2 ON t1.SEQPESSOA = t2.SEQPESSOA
            INNER JOIN MLF_NFITEM t3 ON t2.SEQPESSOA = t3.SEQPESSOA
    WHERE   t3.NROEMPRESA = 90
            --AND t3.NUMERONF = t1.NUMERONF
            AND t1.USUCANCELAMENTO IS NOT NULL
    		AND t2.NOMERAZAO LIKE '%BOA%'
            AND DTAEMISSAO >= '01/01/2017';

    e esse 

    SELECT DISTINCT
            t1.NUMERONF ,
            t1.NROEMPRESA ,
            t1.STATUSNFE ,
            t1.DTAEMISSAO ,
            t1.DTASAIDA ,
            t1.DTARECEBIMENTO ,
            t1.DTAENTRADA ,
            t1.DTACANCELAMENTO ,
            t1.OBSERVACAOLF ,
            t1.OBSERVACAO ,
            t1.MOTIVOCANCELOU ,
            t2.NOMERAZAO ,
            t3.VLRITEM
    FROM    MLF_NOTAFISCAL t1
            INNER JOIN GE_PESSOA t2 ON t1.SEQPESSOA = t2.SEQPESSOA
            INNER JOIN MLF_NFITEM t3 ON t2.SEQPESSOA = t3.SEQPESSOA
    WHERE   t3.NROEMPRESA = 90
            --AND t3.NUMERONF = t1.NUMERONF
            --AND t1.USUCANCELAMENTO IS NOT NULL
    		AND t2.NOMERAZAO LIKE '%BOA%'
            AND DTAEMISSAO >= '01/01/2017'
    		ORDER BY  t1.STATUSNFE,t1.DTACANCELAMENTO DESC

    Caso ainda tenha alguma duvida , poste  o resultado de um top 10 da segunda query , por favor

    Wesley Neves - Brasilia-DF

     
    https://wesleyneves.wordpress.com/
    MTA-SQL Server
    MTA- Web Development
    Analista Desenvolvedor.NET
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"





    Wesley Neves

    segunda-feira, 18 de setembro de 2017 12:36

Todas as Respostas

  • Bom dia, Talvez  seu problema seja no formado da data, vc deve passar no mesmo formato que está armazenado , ou seus parametros

    Where estão inconsistentes , acredito que o trecho (AND t3.NUMERONF = t1.NUMERONF) é desnecessário

    O que tem armazenado as colunas  STATUSNFE,DTACANCELAMENTO,MOTIVOCANCELOU

    faça alguns testes assim para saber se o seu where está correto

    SELECT DISTINCT
            t1.NUMERONF ,
            t1.NROEMPRESA ,
            t1.STATUSNFE ,
            t1.DTAEMISSAO ,
            t1.DTASAIDA ,
            t1.DTARECEBIMENTO ,
            t1.DTAENTRADA ,
            t1.DTACANCELAMENTO ,
            t1.OBSERVACAOLF ,
            t1.OBSERVACAO ,
            t1.MOTIVOCANCELOU ,
            t2.NOMERAZAO ,
            t3.VLRITEM
    FROM    MLF_NOTAFISCAL t1
            INNER JOIN GE_PESSOA t2 ON t1.SEQPESSOA = t2.SEQPESSOA
            INNER JOIN MLF_NFITEM t3 ON t2.SEQPESSOA = t3.SEQPESSOA
    WHERE   t3.NROEMPRESA = 90
            --AND t3.NUMERONF = t1.NUMERONF
            AND t1.USUCANCELAMENTO IS NOT NULL
    		AND t2.NOMERAZAO LIKE '%BOA%'
            AND DTAEMISSAO >= '01/01/2017';

    e esse 

    SELECT DISTINCT
            t1.NUMERONF ,
            t1.NROEMPRESA ,
            t1.STATUSNFE ,
            t1.DTAEMISSAO ,
            t1.DTASAIDA ,
            t1.DTARECEBIMENTO ,
            t1.DTAENTRADA ,
            t1.DTACANCELAMENTO ,
            t1.OBSERVACAOLF ,
            t1.OBSERVACAO ,
            t1.MOTIVOCANCELOU ,
            t2.NOMERAZAO ,
            t3.VLRITEM
    FROM    MLF_NOTAFISCAL t1
            INNER JOIN GE_PESSOA t2 ON t1.SEQPESSOA = t2.SEQPESSOA
            INNER JOIN MLF_NFITEM t3 ON t2.SEQPESSOA = t3.SEQPESSOA
    WHERE   t3.NROEMPRESA = 90
            --AND t3.NUMERONF = t1.NUMERONF
            --AND t1.USUCANCELAMENTO IS NOT NULL
    		AND t2.NOMERAZAO LIKE '%BOA%'
            AND DTAEMISSAO >= '01/01/2017'
    		ORDER BY  t1.STATUSNFE,t1.DTACANCELAMENTO DESC

    Caso ainda tenha alguma duvida , poste  o resultado de um top 10 da segunda query , por favor

    Wesley Neves - Brasilia-DF

     
    https://wesleyneves.wordpress.com/
    MTA-SQL Server
    MTA- Web Development
    Analista Desenvolvedor.NET
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"





    Wesley Neves

    segunda-feira, 18 de setembro de 2017 12:36
  • Lucas, bom dia

    Também dê uma olhada no relacionamento do seu Inner join.. talvez você tenha outras chaves que não está passando como parâmetro.

    Outra sugestão.. vejo que vc passa uma NFITEM e pode exitir notas (servico) que não tem item.. então recomendo que use LEFT JOIN ao inves do INNER JOIN.


    Carlos Henrique Quadrado - Lençóis Paulista - SP - Brasil

    ITIL v3 | ITMP |

    Caso a resposta tenha sido útil clique em Votar. Caso a resposta tenha resolvido sua necessidade marque como Resposta. smile

    Please use Vote As Helpful if a post was useful or use Marked as Answer if my post solved your necessity.  smile

    segunda-feira, 18 de setembro de 2017 13:06
  • Bom dia,

    Por falta de retorno essa thread está encerrada.

    Se necessário, favor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 25 de setembro de 2017 13:50
    Moderador