none
Intervalo de Datas RRS feed

  • Pergunta

  • Boa tarde pessoal, vê se vocês podem me ajudar. Estou desenvolvendo um programa de impressão e tem uma condição que não está sendo obedecida quando eu acesso o Banco de Dados. Intervalo de Datas. Eu defino uma busca entre duas datas, porém, está vindo todas as datas, Vou postar a minha procedure. o meu periodo de escolha é o seguinte notas emitidas de 10/06/2020 a 30/06/2020, porém as notas emitidas em 03/06/2020 também estão vindas.
    DROP PROCEDURE	NOTASFISCAIS_PESQUISARELATORIO_NUMEROFILIALDATANOTAOPERACAOSITUACAONUMERONOTA
    GO
    CREATE PROCEDURE NOTASFISCAIS_PESQUISARELATORIO_NUMEROFILIALDATANOTAOPERACAOSITUACAONUMERONOTA(
    	@Numero_Filial		INT,
    	@Tipo_Operacao		INT,
    	@Situacao_NFe		NCHAR(1),
    	@Numero_NotaFiscal	INT,
    	@NotaInicial		INT,
    	@NotaFinal			INT,
    	@DataNotaInicial	DATETIME,
    	@DataNotaFinal		DATETIME
    )
    AS 
    	BEGIN
    			declare @DataHoraNotaInicial datetime, @DataHoraNotaFinal datetime;
    				set @DataHoraNotaInicial= @DataNotaInicial;
    				set @DataHoraNotaFinal= DateAdd(ms, -3, DateAdd(day, +1, @DataNotaFinal));
    
    		SELECT	NFe.CodigoID, NFe.Tipo_Operacao, NFe.Serie_NotaFiscal, NFe.Formato_Impressao, NFe.Tipo_Emissao,
    				NFe.Numero_NotaFiscal, NFe.Modelo_Nota, NFe.Chave_Nota, NFe.Digito_Verificador, NFe.ProtocoloEnvio_NFe, NFe.Finalidade_Emissao,
    				NFe.Forma_PagamentoNFe, NFe.Indicador_LocalDestinoOperacao, NFe.Indicador_OperacaoConsumidorFinal,
    				NFe.Indicador_PresencaConsumidor, NFe.Processo_EmissaoNFe, NFe.Data_Emissao, NFe.Data_Saida, NFe.Numero_Filial,
    				F.Nome_Filial, NFe.Modalidade_Frete, NFe.CpfCnpj_Cliente, NFe.Nome_Cliente,
    				NFe.CpfCnpj_Cobranca, NFe.Nome_Cobranca, NFe.CpfCnpj_Retirada, NFe.Nome_Retirada,
    				NFe.CpfCnpj_Entrega, NFe.Nome_Entrega, NFe.Cfop_NaturezaOperacao, NFe.Cfop_Repeticao,
    				NFe.Codigo_Ncm, NFe.Codigo_SitTributaria, NFe.Aliquota_Icms, NFe.Reducao_PorcBaseIcms, NFe.Codigo_ModalidadeBCIcms,
    				NFe.Aliquota_Ipi, NFe.Reducao_PorcIpi, NFe.Codigo_SitTributariaIpi, NFe.Aliquota_IcmsSubsInterEstadual,
    				NFe.Aliquota_IcmsSubsInterna, NFe.Reducao_BaseIcmsSubstituicao, NFe.Codigo_ModalidadeBCIcmsSubs, NFe.Margem_ValorAdicIcmsSubsTrib,
    				NFe.Margem_ValorAdicIcmsSubsTribII, NFe.Percentual_CargaTributariaMedia, NFe.Identificar_ContribSubstituto, NFe.Subtrair_LeiComplementar,
    				NFe.Aliquota_Pis, NFe.Valor_TotalPis, NFe.Codigo_SitTributariaPis, NFe.Aliquota_Cofins, NFe.Valor_TotalCofins,
    				NFe.Codigo_SitTributariaCofins, NFe.Valor_RetidoPis, NFe.Valor_RetidoCofins, NFe.Valor_RetidoCSLL,
    				NFe.Valor_BaseCalculoIrrf, NFe.Valor_RetidoIrrf, NFe.Valor_BCRetencaoPrevidenciaSocial, NFe.Valor_RetencaoPrevidenciaSocial,
    				NFe.Hora_Saida, NFe.Numero_Representante, NFe.Numero_Vendedor, NFe.Lei_Complementar, NFe.Codigo_CSOSN,
    				NFe.Forcar_CSOSN, NFe.Quantidade_Volumes, NFe.Especie_Produto, NFe.Marca_Produto, NFe.Numero_Produto,
    				NFe.Peso_Bruto, NFe.Peso_Liquido, NFe.Numero_Lacres, NFe.Valor_Frete, NFe.Valor_Outros, NFe.CpfCnpj_Transportador,
    				NFe.Numero_Transportadora, NFe.Tipo_Transporte, NFe.Placa_Veiculo, NFe.Placa_SemiReboque, Identificacao_Vagao,
    				Identificacao_Balsa, NFe.Totaliza_PesoAutomaticamente, NFe.Calcula_IcmsFrete, NFe.Calcula_IcmsOutrasDespesas,
    				NFe.Calcula_IcmsSubsFrete, NFe.Numero_Itens, NFe.Data_InicioPagamento, NFe.Codigo_PrazoPagamento, NFe.Codigo_TipoPagamento,
    				NFe.Numero_Duplicatas, NFe.Valor_Desconto, NFe.Aliquota_Desconto, NFe.Digita_ValoresParcelas, NFe.Base_Icms,
    				NFe.Valor_Icms, NFe.Valor_IcmsDesonerado, NFe.Valor_Seguro, NFe.Valor_DescontoNFe, NFe.Valor_II, NFe.Valor_TotalTributos,
    				NFe.Valor_TotalServicosSemIncidencias, NFe.Valor_BaseCalculoIss, NFe.Valor_TotalIss, NFe.Valor_TotalPisSobreIss,
    				NFe.Valor_TotalCofinsSobreIss, NFe.Data_PrestacaoServicos, NFe.Valor_DeducaoReducaoBCIss, NFe.Valor_OutrasRetencoesIss,
    				NFe.ValorTotal_DescontoIncondicionado, NFe.ValorTotal_DescontoCondicionado, NFe.ValorTotal_RetencaoIss,
    				NFe.CodigoRegime_EspecialTributacao, NFe.Base_IcmsSubstituicaoTributaria, NFe.Valor_IcmsSubstituicaoTributaria,
    				NFe.Total_Ipi, NFe.Total_ProdutosServicos, NFe.Total_NotaFiscal, NFe.Informacoes_AdicionaisFisco, NFe.Informacoes_ComplementaresContribuinte1,
    				NFe.Informacoes_ComplementaresContribuinte2, NFe.Informacoes_ComplementaresContribuinte3, NFe.Informacoes_ComplementaresContribuinte4,
    				NFe.Informacoes_ComplementaresContribuinte5, NFe.Informacoes_ComplementaresContribuinte6, NFe.Informacoes_ComplementaresContribuinte7, 
    				NFe.Informacoes_AdicionaisFisco1, NFe.Informacoes_AdicionaisFisco2, NFe.Informacoes_AdicionaisFisco3, NFe.Informacoes_AdicionaisFisco4, 
    				NFe.Informacoes_AdicionaisFisco5, NFe.Informacoes_AdicionaisFisco6, NFe.Informacoes_AdicionaisFisco7, NFe.Campo_LivreContribuinte,
    				NFe.Conteudo_CampoLivreContribuinte, NFe.Campo_LivreFisco, NFe.Conteudo_CampoLivreFisco, NFe.Identificador_ProcessoAtoConcessorio,
    				NFe.Indicador_OrigemProcesso, NFe.UF_EstadoExportador, NFe.Descricao_LocalEmbarque, NFe.Descricao_LocalDespacho,
    				NFe.Identificacao_NotaEmpenho, NFe.Numero_PedidoCompra, NFe.Numero_ContratoCompra, NFe.CpfCnpj_Emitente, NFe.Numero_Usuario, U.Usuario,
    				NFe.Situacao_NFe
    				from tbNotasFiscais as NFe
    				inner join tbFiliais as F on F.Codigo_Filial = NFe.Numero_Filial
    				inner join tbUsuarios as U on U.Numero_Usuario = NFe.Numero_Usuario
    			WHERE	(NFe.Numero_Filial = @Numero_Filial OR NFe.Numero_Filial = 0) 
    					AND ( NFe.Numero_NotaFiscal between @NotaInicial AND @NotaFinal)
    					AND ( NFe.Data_Emissao between @DataHoraNotaInicial AND @DataHoraNotaFinal)
    					AND ( NFe.Tipo_Operacao = @Tipo_Operacao) OR (@Tipo_Operacao = '9')
    					AND ( NFe.Situacao_NFe = @Situacao_NFe) OR (@Situacao_NFe = 'G')
    					ORDER BY NFe.Numero_NotaFiscal ASC 
    	END
    GO
    

    quarta-feira, 17 de junho de 2020 17:24

Respostas

  • Bom dia,

    Experimente adicionar parênteses para delimitar as condições envolvendo as colunas Tipo_Operacao e Situacao_NFe onde está sendo utilizado o Or:

    WHERE
        (NFe.Numero_Filial = @Numero_Filial OR NFe.Numero_Filial = 0) AND 
        ( NFe.Numero_NotaFiscal between @NotaInicial AND @NotaFinal) AND 
        ( NFe.Data_Emissao between @DataHoraNotaInicial AND @DataHoraNotaFinal) AND 
        ( ( NFe.Tipo_Operacao = @Tipo_Operacao) OR (@Tipo_Operacao = '9') ) AND 
        ( ( NFe.Situacao_NFe = @Situacao_NFe) OR (@Situacao_NFe = 'G') )
    

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    quinta-feira, 18 de junho de 2020 13:04

Todas as Respostas

  • Bom dia,

    Experimente adicionar parênteses para delimitar as condições envolvendo as colunas Tipo_Operacao e Situacao_NFe onde está sendo utilizado o Or:

    WHERE
        (NFe.Numero_Filial = @Numero_Filial OR NFe.Numero_Filial = 0) AND 
        ( NFe.Numero_NotaFiscal between @NotaInicial AND @NotaFinal) AND 
        ( NFe.Data_Emissao between @DataHoraNotaInicial AND @DataHoraNotaFinal) AND 
        ( ( NFe.Tipo_Operacao = @Tipo_Operacao) OR (@Tipo_Operacao = '9') ) AND 
        ( ( NFe.Situacao_NFe = @Situacao_NFe) OR (@Situacao_NFe = 'G') )
    

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    quinta-feira, 18 de junho de 2020 13:04
  • Obrigado Gapilmex, deu certo.

    Garibaldo

    quinta-feira, 18 de junho de 2020 16:00