Calculo SQL

Delphi

27/07/2007

Boa Noite, Pessoal.

Eu utilizo o comando abaixo que soma o Total por Funcionario quando clico em um botão.

Fica como abaixo:
FUNCIONARIO -------- TOTAL
MARCOS PAULO ----- 120,00
JOAO PESSOA -------- 15,00
TERESA --------------- 150,00
LULA ------------------ 1,51

Gostaria de saber se tem como eu calcular o total do total.

Gostaria que ficasse assim:
FUNCIONARIO -------- TOTAL
MARCOS PAULO ----- 135,00
JOAO PESSOA -------- 15,00
TERESA --------------- 150,00
LULA ------------------ 150,00

TOTAL ------- 450,00

Me ajudem pessoal.


While Query1 do begin close; SQL.Clear; SQL.Add(´Select FUNCIONARIO, SUM(VALOR) as TOTAL From Tabela1´); SQL.Add(´GROUP BY FUNCIONARIO´); Open; End;



Marcelovms

Marcelovms

Curtidas 0

Respostas

Gilberto Fernandes

Gilberto Fernandes

27/07/2007

acho q em somente uma sql vc não consegue trazer os valores separados e a soma ao mesmo tempo não. ou vc faz um sql trazendo o total, ou faz um while comando os valores de cada registro, junto com essa sql.


GOSTEI 0
Only

Only

27/07/2007

no MS-SQL eu uso assim, em outro banco nunca testei pra ver se rola,
tenta ae e posta se deu certo


SELECT CASE WHEN (GROUPING(Funcionario) = 1) THEN ´Total´
ELSE ISNULL(Funcionario, ´NÃO INFORMADO´)
END AS Funcionario,
SUM(Total) AS Total_Vendido
FROM Pedidos
GROUP BY Funcionario WITH rollup

Rafael Pedrosa


GOSTEI 0
Djjunior

Djjunior

27/07/2007

Cara eu conhecia o with Rollup só não sabia do ´case when grouping´ realmente muito útil. :D

Uma outra opção é usar o CUBE no lugar do ROLLUP´.


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

27/07/2007

uma solução mais genérica seria utilizar duas consultas e uni-las
select
  funcionario, sum(valor)
from
  receitas
group by
  funcionario

union all

select
  ´TOTAL´, sum(valor)
from
  receitas
não é tão elegante quanto a forma apresentada para o SQL Server, mas funciona na maioria dos banco de dados.


GOSTEI 0
POSTAR