Somar valores

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
jks1903
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 188
Registrado em: Qui, 04 Fev 2010 8:08 am

Pessoal, minha dúvida é a seguinte:

Aqui em nossa base de dados possuimos uma tabela chamada usuarios com a seguinte estrutura de campos:

matricula --> é a matricula do usuário
nome --> nome do usuário
sn_titular --> Valores possíveis (S/N), indica se é titular ou não
mat_titular --> caso for dependente, informa qual é o titular

E em outra tabela possuimos os gastos desse usuário, seja com produtos, diárias, etc.. com o nome de desp_usuarios, com os seguintes campos:

seq_gastos --> chave primária, sequence
matricula --> matricula do usuário que efetuou o gasto
data --> data da realização
valor --> valor do gasto

O que preciso é fazer um relatório exibindo os gastos dos titulares juntamente com os gastos de seus dependentes, somando os gastos do titular com seus dependentes.

Por exemplo: se o titular de matricula 1 gastou 100,00 e seus dependentes com matriculas 2 e 3 gastaram 85,00 e 50,00 respectivamente o relatório deve ser exibido nessa estrutura

Selecionar tudo

MATRICULA       BENEFICIARIO                 VALOR
=========================================================
1              nome_do_titular              235.00
Meu problema é que não estou achando uma forma de somar os gastos do titular com o beenficiario. Preciso selecionar somente um determinado período, mas isso é simples. O maior problema pra mim é iso mesmo.

Vlw a todos.
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

n testei essa gamb ai não mas vê se funciona..
tentei te dar uma ideia.. veja se melhora

Selecionar tudo

select matricula,
       nome,
       sum(valor +
         select sum(b.valor)
           from usuarios a, gastos b
          where a.matricula = b.matricula
            and a.matricula = u.matricula
          GROUP BY a.mat_titular)
from usuarios u, gastos g
where u.matricula = g.matricula;
and sn_titular <> 'S'
jks1903
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 188
Registrado em: Qui, 04 Fev 2010 8:08 am

Cara saquei a maldade.

Vou ajustar para a nossa base aqui, mas caso não funcione volto a postar.

Vlw.
Responder
  • Informação