none
Gerar uma tabela com uma coluna de classificação RRS feed

  • Pergunta

  • Pessoal,

    estou com uma duvida sou novo em programação em sql e gostaria de criar uma tabela que contenha uma coluna de classificação idem o que eu realizava no excel: =Se(a2=A1;B1+1;1). Pois com isso quero fazer a seleção de top 5 por grupo.

    Abaixo o codigo que desenvolvi para ordenar do maior para o menor:

    Select
    a.Plu_Coleta
    ,a.Plu_UF
    ,a.Plu_Cidade
    ,a.Plu_Finalidade
    ,a.Plu_Modalidade
    ,a.Plu_Anunciante
    ,count (a.Plu_CodigoAnunciante) as #_Anunciantes
    from BIES_Tab_Plugar as a
    where a.Plu_UF = 'SP'
    and
    a.Plu_Cidade = 'Sao Paulo'
    group by a.Plu_Coleta, a.Plu_UF,a.Plu_Cidade, a.Plu_Finalidade, a.Plu_Modalidade,a.Plu_Anunciante, a.Plu_CodigoAnunciante
    order by a.Plu_Coleta,a.Plu_UF, a.Plu_Cidade,a.Plu_Finalidade, a.Plu_Modalidade, COUNT(a.Plu_CodigoAnunciante) desc

    Abs

    quarta-feira, 4 de fevereiro de 2015 14:06

Todas as Respostas

  • Film_15,

    Este select seria diretamente no seu relatório ou um simples query que você esta querendo implementar na sua aplicação?

    Poderia explicar melhor?


    Pedro Antonio Galvao Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quarta-feira, 4 de fevereiro de 2015 14:48
  • Olá,

          O SQL Server 2012 em diante possui uma funcionalidade chamada Window Functions que serve para a sua necessidade. Procure no BOL sobre Ranking Functions ou nos links abaixo:

    https://www.simple-talk.com/sql/learn-sql-server/window-functions-in-sql-server/

    http://sqlmag.com/sql-server-2012/how-use-microsoft-sql-server-2012s-window-functions-part-1


    Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008

    quarta-feira, 4 de fevereiro de 2015 16:28
    Moderador
  • Pedro,

    Esse select vou utilizar no microsoft SQL server report Builder.

    Com esse select quero apos os filtro que apresente apenas os top 5 anunciantes por modalidade.

    Abs

    quarta-feira, 4 de fevereiro de 2015 16:46
  • Film_15,

    Então, mas esta cálculo você deseja fazer como recurso como elemento para filtrar os dados?


    Pedro Antonio Galvao Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quarta-feira, 4 de fevereiro de 2015 17:09
  • Pedro,

    A ideia é criar a coluna com essa classificação por exemplo se a cidade  e a finalidade for a mesma a coluna "Class" ira receber na 1ª linha o valor 1 na 2ª linha o valor 2 e subsequentemente, quando a finalidade for diferente a coluna "Class" volta a receber o valor 1.

    Conseguindo realizar isso vou criar um where class <=5.

    Abs

    quarta-feira, 4 de fevereiro de 2015 17:38
  • Film_15,

    Então na verdade você tem que fazer isso na sua query, e aplicar ao seu report um parâmetro com base neste coluna para gerar o filtro.


    Pedro Antonio Galvao Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quarta-feira, 4 de fevereiro de 2015 17:53
  • Pedro, minha duvida é como realizar essa classificação na minha query?
    quarta-feira, 4 de fevereiro de 2015 18:18