none
Condição de Intervalo de Datas RRS feed

  • Pergunta

  • Boa tarde pessoal.

    Eu tenho uma condição referente a intervalo de datas que estou tendo dificuldades de resolver o problema.

    É o seguinte: A minha condição busca um intervalo entre duas datas. As vezes eu quero que venha todas as datas e assim eu não preciso enviar a data inicio e final. Como eu faço essa consistência dentro da minha procedure? Estou enviando a minha procedure para vocês verificarem.

    DROP PROCEDURE	MEMBROS_PESQUISA_NUMEROAFILIADACODIGOMEMBRODATANASCIMENTODATABATISMODATAINGRESSOESTADOCIVILBATIZADOSCARGO
    GO
    CREATE PROCEDURE MEMBROS_PESQUISA_NUMEROAFILIADACODIGOMEMBRODATANASCIMENTODATABATISMODATAINGRESSOESTADOCIVILBATIZADOSCARGO(
    	@Numero_Afiliada			INT,
    	@CodigoInicialMembro	INT,
    	@CodigoFinalMembro		INT,
    	@EstadoCivilMembro		CHAR(1),
    	@BatizadoNasAguas		CHAR(1),
    	@CargoMembro			CHAR(1),
    	@DataInicialNascimento1	DATETIME,
    	@DataFinalNascimento1	DATETIME,
    	@DataInicialBatismo1	DATETIME,
    	@DataFinalBatismo1		DATETIME,
    	@DataInicialIngresso1	DATETIME,
    	@DataFinalIngresso1		DATETIME
    )
    AS 
    	BEGIN
    			declare @DataInicialNascimento datetime, @DataFinalNascimento datetime;
    			set @DataInicialNascimento = @DataInicialNascimento;
    			set @DataFinalNascimento = DateAdd(ms, -3, DateAdd(day, +1, @DataFinalNascimento));
    
    			declare @DataInicialBatismo datetime, @DataFinalBatismo datetime;
    			set @DataInicialBatismo = @DataInicialBatismo;
    			set @DataFinalBatismo = DateAdd(ms, -3, DateAdd(day, +1, @DataFinalBatismo));
    
    			declare @DataInicialIngresso datetime, @DataFinalIngresso datetime;
    			set @DataInicialIngresso = @DataInicialIngresso;
    			set @DataFinalIngresso = DateAdd(ms, -3, DateAdd(day, +1, @DataFinalIngresso));
    
    		SELECT	M.CodigoID, M.Codigo_Membro, M.Documento, M.CpfCnpj_Membro, M.Nome_Membro, M.NomeMae_Membro, M.Endereco_Membro, M.NumeroEndereco_Membro,
    				M.Cep_Membro, M.ComplEndereco_Membro, M.Bairro_Membro, M.Inscricao_Estadual, M.UF_Membro, M.Municipio_Membro, M.CodigoIbge_Membro, 
    				M.Telefone1_Membro, M.Telefone2_Membro, M.Telefone3_Membro, M.NumeroRG_Membro, M.EstadoCivil_Membro, M.Nome_ConjugeMembro, 
    				M.NumeroFilhos_Membro, M.UF_NaturalidadeMembro, M.Municipio_Naturalidade, M.Data_NascimentoMembro, M.BatizadoNas_Aguas, 
    				M.DataBatismo_Membro, M.Nome_MinisterioAnterior, M.DataMembroIgreja_Desde, M.Data_Cadastro, M.Pais_Membro, M.Nome_Pais, M.Email_Membro, 
    				M.HomePage_Membro, M.Codigo_Banco, M.DiasFatura, M.Cargo_Membro, M.Atividades_Igreja, M.Numero_Afiliada, A.Nome_Afiliada, 
    				M.Numero_Usuario, U.Usuario
    			from tbMembros as M
    				inner join tbAfiliadas as A on A.Codigo_Afiliada = M.Numero_Afiliada
    				inner join tbUsuarios as U on U.Numero_Usuario = M.Numero_Usuario
    			WHERE	( M.Numero_Afiliada = @Numero_Afiliada OR M.Numero_Afiliada = 0) 
    					AND ( M.EstadoCivil_Membro = @EstadoCivilMembro OR M.EstadoCivil_Membro = '')
    					AND ( M.Cargo_Membro = @CargoMembro OR M.Cargo_Membro = '')
    					AND ( M.BatizadoNas_Aguas = @BatizadoNasAguas OR M.BatizadoNas_Aguas = '')
    					AND ( M.Codigo_Membro between @CodigoInicialMembro AND @CodigoFinalMembro)
    					AND ( M.Data_NascimentoMembro between @DataInicialNascimento AND @DataFinalNascimento)
    					AND ( M.DataBatismo_Membro between @DataInicialBatismo AND @DataFinalBatismo)
    					AND ( M.DataMembroIgreja_Desde between @DataInicialIngresso AND @DataFinalIngresso)
    	END
    GO
    

    domingo, 28 de julho de 2019 16:14

Respostas

Todas as Respostas