none
Cálculo com valor anterior RRS feed

  • Pergunta

  • Boa tarde a todos!

    Minha dúvida é simples: É possível fazer um cálculo de percentual (por exemplo) entre um valor da linha atual com o

    valor da linha anterior?

    Exemplo:

                    qtd. ant.      qtd.atu      %

    Linha_1      150             120         80,00

    Linha_2      120             280       233,33

    Linha_3      280             175          65,00

    grato

    Deny

          

    terça-feira, 14 de fevereiro de 2012 16:52

Respostas

  • A funcao previous eh a forma recomendada. Retorna o valor anterior da expressao para aquele grupo.

    Boreki[MSFT] - SQL Server Reporting Services

    • Marcado como Resposta truyts terça-feira, 14 de fevereiro de 2012 18:33
    terça-feira, 14 de fevereiro de 2012 18:15

Todas as Respostas

  • Truyts,

    Segue um exemplo:



    DECLARE @Tab TABLE(Cont INT)





    INSERT INTO @Tab VALUES



    (50),(100),(70)





    ;WITH CTE (At, Ranking)



    AS



    (



          SELECTCont,ROW_NUMBER()OVER(ORDERBYContDESC)



          FROM@tab



    )



    --SELECT * FROM CTE



    SELECT Anterior, At, (At*100)/CASE Anterior WHEN 0 THEN 1 ELSE Anterior END



    FROM



    (



          SELECT



          ISNULL((SELECTb.AtFROMCTEbWHEREb.Ranking=a.Ranking-1),0)AsAnterior,



          a.At



          FROMCTE
    a



    ) c



    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com

    terça-feira, 14 de fevereiro de 2012 17:08
    Moderador
  • Fabrizzio, perfeito... mas eu preciso fazer isso no Reporting. Os dados estão vindo de um cubo.

    grato

    Deny Acacio Truyts

    terça-feira, 14 de fevereiro de 2012 17:19
  • Agradeço a colaboração, mas como estou engatinhando no Reporting, descobri que existe a função Previous.

    Que resolveu o problema.

    Grato

    Deny

    terça-feira, 14 de fevereiro de 2012 18:08
  • A funcao previous eh a forma recomendada. Retorna o valor anterior da expressao para aquele grupo.

    Boreki[MSFT] - SQL Server Reporting Services

    • Marcado como Resposta truyts terça-feira, 14 de fevereiro de 2012 18:33
    terça-feira, 14 de fevereiro de 2012 18:15