jescudeiro Aprendiz
Registrado: Segunda-Feira, 2 de Abril de 2012 Mensagens: 261 Localização: ribeirao preto
|
Enviada: Seg Mar 01, 2021 12:32 pm Assunto: Alterar o filtro de pesquisa na procedure. |
|
|
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 |
|