ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Alterar o filtro de pesquisa na procedure.

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
jescudeiro
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 2 de Abril de 2012
Mensagens: 261
Localização: ribeirao preto

MensagemEnviada: Seg Mar 01, 2021 12:32 pm    Assunto: Alterar o filtro de pesquisa na procedure. Responder com Citação

Boa tarde,
Tenho uma procedure em SQL Server 2014.
gera consulta de contas a pagar.
O usuário pode escolher se quer filtrar por data de emissão, vencimento ou pagamento e não sei como implementar essa parte.
Nas 3 ultimas linhas tem minha tentativa, porém da erro.
obrigado

ALTER PROCEDURE pRelatorioPagarGeral

@dInicio DateTime,
@dFim DateTime,
@CodFornecedor Int,
@CodHistorico Int,
@CodTipo Int,
@CodBanco Int,
@CodEmpresa Int,
@TpData Int = 0,
@PagarPagasTodas Int = 0

as

-- EXEC pRelatorioPagarGeral '01-01-2020','31-12-2025',3,null,Null,null,null,null,null

BEGIN

SELECT
p.Chave,
p.VlrPago,
p.VlrDevido,
p.CodCompra,
Dbo.fncFormataString(p.CodFornecedor,5,'0') + ' - ' + COALESCE(f.RazaoSocial,f.Nome) as Fornecedor,
t.Descricao as TipoPagamento,
p.NCheque,
p.DtPedido,
p.DtVencimento,
p.NroTitulo,
Dbo.fncFormataString(p.NParcela,3,'0') + ' / ' + Dbo.fncFormataString(p.QddParcelas,3,'0') as nParcelas,
p.NroNota,
p.observacao1,
p.observacao2,
p.DtPagamento,
p.CodCcusto,
p.CodBanco,
p.CodEmpresa
FROM
Pagar p

Inner Join
Fornecedores f
on
p.CodFornecedor = f.Codigo

Inner Join
TipoPagto t
on
t.Codigo = p.CodTipo

WHERE
(@CodFornecedor IS NULL OR (p.CodFornecedor = @CodFornecedor)) AND
(@CodHistorico IS NULL OR (p.CodCcusto = @CodHistorico)) AND
(@CodBanco IS NULL OR (p.CodBanco = @CodBanco )) AND
(@CodEmpresa IS NULL OR (p.CodEmpresa = @CodEmpresa )) AND
(@CodTipo IS NULL OR (p.CodTipo = @CodTipo )) AND

CASE @TpData WHEN 0 THEN p.DtEmissao between @dinicio and @dfim
CASE @TpData WHEN 1 THEN p.DtVencimento between @dinicio and @dfim
CASE @TpData WHEN 2 THEN p.DtPagamento between @dinicio and @dfim



END
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Seg Mar 01, 2021 2:27 pm    Assunto: Responder com Citação

Boa tarde,

Experimente dessa forma:

Código:
CASE @TpData
  WHEN 0 THEN p.DtEmissao
  WHEN 1 THEN p.DtVencimento
  ELSE p.DtPagamento
END between @dinicio and @dfim


Espero que ajude
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB