none
Somar RRS feed

  • Pergunta

  • Bom possuo uma consulta Sql Que efetua soma do campo valor_deposito Corretamente...

    Mas gostaria que tambem exibixe um total geral a cada diferente cod_processo 

    Wesley Sozua

    terça-feira, 28 de fevereiro de 2012 15:05

Todas as Respostas

  • Olá WesSouza,

    Você poderia usar a função de agregação WITH ROLLUP, desta forma totalizadores são adicionados baseados na função group by.

    para maiores informações, cosunlte:

    http://blogs.msdn.com/b/craigfr/archive/2007/09/21/aggregation-with-rollup.aspx

    Se útil, Classifique.


    Dhiego Piroto - MCP | MCTS SQL Server 2008 Developer | Email: dhiegopiroto@gmail.com


    • Editado DhiegoPiroto terça-feira, 28 de fevereiro de 2012 15:35
    terça-feira, 28 de fevereiro de 2012 15:35
  • O Resultado que eu busco é Ex:



     eu gostaria que aparece o Total referente ao Depositante e o Total Geral de acordo com Cod em que o Depositante depositou EX:


    Cod        Depositante      Valor
     
    123          Joao                100,00


    -                -                    110,00


    -                 -                  210,00     Total


    -             Jose                    55,00
    -               -                       60,00


                                             105,00 Total


                                          315,00 Total Geral no Cod 123


    Wesley Sozua

    terça-feira, 28 de fevereiro de 2012 18:23
  • Você pode criar uma função escalar, e associa-la através do comando SELECT.

    por exemplo:

    create table TESTE(
    	ID INT, 
    	VALOR DECIMAL(10,2)
    )
    GO
    INSERT INTO TESTE VALUES
    (1,10),
    (1,50),
    (1,130),
    (2,10),
    (2,10)
    
    GO
    --DROP FUNCTION DBO.UFN_TOTAL
    CREATE FUNCTION DBO.UFN_TOTAL(@ID INT)
    RETURNS DECIMAL(10,2) BEGIN
    	RETURN (SELECT SUM(VALOR) AS TOTAL FROM TESTE WHERE ID = @ID)
    
    END
    GO
    
    
    SELECT ID, VALOR,DBO.UFN_TOTAL(ID) AS TOTAL
    FROM TESTE

    A forma como a totalização é apresentada poderá ser formatada no seu relatório.

    Abraços.

    Se útil, Classifique.


    Dhiego Piroto - MCP | MCTS SQL Server 2008 Developer | Email: dhiegopiroto@gmail.com


    • Editado DhiegoPiroto terça-feira, 28 de fevereiro de 2012 18:51
    terça-feira, 28 de fevereiro de 2012 18:50
  • Muito Obrigado DhiegoPiroto Estava buscando um exemplo para tentar modificar o meu scrpt

    ;with cte_teste as( select depositante_deposito , cod_processo,sum(valor_deposito) as valor_deposito ,data_vencimento_deposito,guia_deposito, id_deposito, cod_mandado, cod_guia_deposito  

    from deposito group by rollup( depositante_deposito, cod_processo, data_vencimento_deposito, guia_deposito, id_deposito, cod_mandado, cod_guia_deposito)), Base as ( select depositante_deposito , cod_processo,valor_deposito ,data_vencimento_deposito,guia_deposito, id_deposito, cod_mandado, cod_guia_deposito

    ,row_number() over  (partition by depositante_deposito order by depositante_deposito,cod_processo) numerador ,row_number() over  (partition by cod_processo order by cod_processo,depositante_deposito)numerador2 from cte_teste

    WHERE(depositante_deposito Is Not null And cod_processo Is Not null And guia_deposito Is Not null And id_deposito Is

    Not null And cod_mandado Is Not null And cod_guia_deposito Is Not null) or (depositante_deposito is not null and

    cod_processo is not null and guia_deposito is null and id_deposito is null and cod_mandado is null and cod_guia_deposito is null and data_vencimento_deposito is null)) select case when numerador =1 then depositante_deposito else '' end as Nome,case when numerador2 =1 then cod_processo  else '' end as cod_processo,valor_deposito ,data_vencimento_deposito,guia_deposito ,id_deposito ,cod_mandado,cod_guia_deposito

    from Base


    Eu preciso que nessa consulta apareça o total Geral  de Cada Total de seu resopectivo cod_processo....

    Bom Se alguem tiver sugestões Agradeço !!

    Obrigado !


    Wesley Sozua

    terça-feira, 28 de fevereiro de 2012 19:22
  • É só colocar WITH CUBE no final da query e pronto! Você terá o seu total.
    quarta-feira, 29 de fevereiro de 2012 17:12
  • Acho que não Francisco R L Lima Coloquei a função no Final e 

    Ocorreu este erro:   

    Mensagem 336, Nível 15, Estado 1, Linha 1
    Incorrect syntax near 'CUBE'. If this is intended to be a common table expression, you need to explicitly terminate the previous statement with a semi-colon.


    Wesley Sozua

    quarta-feira, 29 de fevereiro de 2012 17:50