none
Como variar o Select TOP [qualquer_num] ??? RRS feed

  • Pergunta

  • Pessoal,

    Usando o Reporting Services, como faria o usuário para escolher o valor do TOP no Select ? ....

    Consigo imaginar a tela em que o usuario digitaria ou escolheria o valor, contudo como faço isso na programação do Visual Studio ?

    valew
    quinta-feira, 30 de abril de 2009 17:56

Respostas

  • A maneira mais simples de criar os campos e primeiro executar a consuta sem expressao, por exemplo, roda a consulta usando top 1. Clica em OK, e o reporting services deve criar os campos e voce pode montar o relatório, mas ele trará só o primeiro campo. Depois volta ao dataset, e troca a consulta para a expressão usando o top com parametro, como os campos já estarão criados ele irá usá-los sem problema.

    Outra alternativa é criar os campos na mão, na aba fields do dataset, mas é bem mais fácil só rodar a consulta sem expressão.

    Att
    Boreki
    http://www.boreki.eng.br
    • Marcado como Resposta Richard Juhasz quarta-feira, 27 de fevereiro de 2013 17:45
    sexta-feira, 15 de maio de 2009 17:57
  • Galera, não sei se será interessante mas consegui fazendo o seguinte:

     

    1 - criei uma procedure de select com top no slq server e passei o parametro da quantidade no select deste jeito

     

    SELECT TOP(@NTOP) FROM TABELA WHERE CONDICAO

     onde o @NTOP foi o parâmetro que criei no sql server para receber a quantidade de filtragem maxima do top, lembrando que deve ser declarado como int.

     

    Abraços

     

     

    • Marcado como Resposta Richard Juhasz quarta-feira, 27 de fevereiro de 2013 17:45
    terça-feira, 28 de setembro de 2010 01:03

Todas as Respostas

  • aNetao,

    O que você poderia fazer é criar parâmetro passando este valor dentro da sua query, mas não saberia neste momento dizer como você poderia inserir este parâmetro diretamente no select, pois normalmente os parâmetros são utilizados como condições.
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    quinta-feira, 30 de abril de 2009 18:03
  • é justamente isso que quero fazer.
    como parametrizar No TOP, por que nas condições é tranquilo para mim.
    quinta-feira, 30 de abril de 2009 18:11
  • aNetao,

    A query pode ser uma expressão, uma alternativa é montar sua string baseada em um parametro:
    ="SELECT TOP "+Parameters!Parametro.value + "CAMPOS FROM TABELA"

    Att
    Boreki
    http://www.boreki.eng.br
    segunda-feira, 4 de maio de 2009 17:35
  • Boreki,

    Obrigado pelo auxílio!!!!


    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    terça-feira, 5 de maio de 2009 13:25
  • Boreki,
    Na guia Data, criei um dataset: SELECT nrEnte AS Ente, nrServ AS Matricula, servidor AS Servidor FROM servidores

    Na guia Layout, criei um Report Parameters para adicionar na query (guia Data).

    Novamente, fui na guia Data, editei o DataSet para ="SELECT TOP"+ Parameters!numServ.Value + " nrEnte AS Ente, nrServ AS Matricula, servidor AS Servidor FROM servidores"
    À partir daqui, não sei o porquê: dele não habilitar o botão ! (Run)
    Não sei se o erro está aqui, mas nas guias Parameters e Filters não fiz nada.

    No Preview, exibe a msg:
    An error occurred during local report processing.
    An error has occurred during report processing.
    Cannot set the command text for data set 'dsODS'.
    Error during processing of the CommandText expression of dataset `dsODS´.

    quarta-feira, 6 de maio de 2009 18:17
  • O botao run  nao vai funcionar para consultas baseadas em expressao. Sua query esta falhando porque falta espaco depois do top.
    Att
    Boreki
    http://www.boreki.eng.br
    quarta-feira, 6 de maio de 2009 18:41
  • Boreki,
    Foi lá e adicionei o espaço, porem nao funfou ?!
    Depois deletei tudo, e comecei do Zero.
    Já fiz direto no DataSet digitei: ="SELECT TOP "+ Parameters!numServ.Value + " nrEnte AS Ente, nrServ AS Matricula, servidor AS Servidor FROM servidores"
    E no Layout, a Table coloquei no DataSetName, porem a """celula""" da table no Properties, Data, está listado os campos no combo.
    E na opção Expression, o Datasets está sem campos.
    Msg: 'dsODS' dataset has no fields.

    como  faço isso ...

    Valew, cara !!
    quarta-feira, 6 de maio de 2009 19:50
  • A maneira mais simples de criar os campos e primeiro executar a consuta sem expressao, por exemplo, roda a consulta usando top 1. Clica em OK, e o reporting services deve criar os campos e voce pode montar o relatório, mas ele trará só o primeiro campo. Depois volta ao dataset, e troca a consulta para a expressão usando o top com parametro, como os campos já estarão criados ele irá usá-los sem problema.

    Outra alternativa é criar os campos na mão, na aba fields do dataset, mas é bem mais fácil só rodar a consulta sem expressão.

    Att
    Boreki
    http://www.boreki.eng.br
    • Marcado como Resposta Richard Juhasz quarta-feira, 27 de fevereiro de 2013 17:45
    sexta-feira, 15 de maio de 2009 17:57
  • Galera, não sei se será interessante mas consegui fazendo o seguinte:

     

    1 - criei uma procedure de select com top no slq server e passei o parametro da quantidade no select deste jeito

     

    SELECT TOP(@NTOP) FROM TABELA WHERE CONDICAO

     onde o @NTOP foi o parâmetro que criei no sql server para receber a quantidade de filtragem maxima do top, lembrando que deve ser declarado como int.

     

    Abraços

     

     

    • Marcado como Resposta Richard Juhasz quarta-feira, 27 de fevereiro de 2013 17:45
    terça-feira, 28 de setembro de 2010 01:03