none
Store Procedure RRS feed

  • Pergunta

  • Tenho uma procedure que não esta me retornando os valores desejados.

    Para exibição do meu relatório necessito fazer uma filtragem para isso tenho os combobox com os valores:

     

    Cliente: xxxx

    Campanha: xxxxx

    Periodo: xxxx

     

    Como criarei uma procedure para pegar os valores do banco desses campos? como ficaria minha Where? grato deste já.

     

    Abraços,

     

    Leandro Rodrigues

    quinta-feira, 8 de novembro de 2007 11:37

Todas as Respostas

  •  

    Olá Leandro,

     

     

    Se entendi bem, você deseja usar um WHERE variável, dependendo do que for selecionado, chamado de WHERE dinâmico. Nesse caso, terás duas opções, uma é usar algo parecido com isso:

     

    Code Block

    SELECT *

    FROM Tabela

    WHERE

    (Cliente = ISNULL(@Cliente, Cliente)) AND

    (Campanha = ISNULL(@Campanha, Campanha)) AND

    (Periodo = ISNULL(@Periodo, Periodo))

     

     

    Ou então, a outra solução, que eu recomendo, é usar o sp_executesql.

    Leia sobre ele neste site:

    http://www.sommarskog.se/dyn-search.html

     

     

    Se tiver dificuldades, retorne.

     

     

    Abraço!!

    quinta-feira, 15 de novembro de 2007 03:20
  • Leandro,

     

    Concordo com o Anderson, utilizando a system stored procedure SP_ExecuteSQL, você poderá ter um ganho de performance pois esta procedure faz uso do plano de execução(query optmyzer) do SQL Server.

    sexta-feira, 16 de novembro de 2007 10:45