Fórum Calculo SQL #343762

27/07/2007

0

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

Responder

Posts

27/07/2007

Gilberto Fernandes

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.


Responder

Gostei + 0

27/07/2007

Only

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


Responder

Gostei + 0

27/07/2007

Djjunior

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´.


Responder

Gostei + 0

27/07/2007

Emerson Nascimento

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.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar