Criar SELECT SUM dentro de SELECT

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
carlynhos77
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 172
Registrado em: Seg, 24 Out 2016 7:20 pm

Ola, boa tarde...

Tenho uma tabela de CADORGAO, que tem um total de 20 órgãos cadastrados (1 a 20)

Entre esses orgaos, existem alguns que é de servidores ativos, por isso tem um CAMPO (Ativos = "1"), outros estao com CAMPO (Ativos = "0"), seria um TRUE / FALSE no campo ATIVO

Tenho uma outra tabela, chamada CADCONTRIBUICOES, nela eu tenho o COD_ORGAO e o um campo VALOR_CONT, onde eu salvo o CODIGO DO ORGAO e o VALOR DA CONTRIBUICAO... eu preciso somar todos os campos dessa tabela contribuicao, porem precisaria pegar somente os registros q o ORGAO for Ativos = TRUE, definido la na tabela CADORGAO.

Algo grosseiro assim:

Selecionar tudo

SELECT o.codorgao
FROM (SELECT c.cod_orgao,
             sum(c.valor_cont)
         FROM CADCONTRIBUICAO
        WHERE c.cod_orgao = o.codorgao
       GROUP BY o.cod_orgao) CADORGAO
WHERE ativos = 1;
não sei se consegui passar o q preciso, mas em resumo... so preciso somar os orgaos q for ATIVOS = 1

Agradeço a ajuda
DanielNN
Moderador
Moderador
Mensagens: 641
Registrado em: Seg, 03 Set 2007 3:26 pm
Localização: Fortaleza - CE
att,

Daniel N.N.

Olá,

Pelo que entendi a informação do campo ATIVO está na tabela CADORGAO e o valor da contribuiçao na CADCONTRIBUICAO. Então bastaria fazer consulta usando o join entre as duas tabelas conforme abaixo:

Selecionar tudo

SELECT o.codorgao
     , sum(c.valor_cont)  valor_cont_sum
  FROM CADORGAO         o 
     , CADCONTRIBUICAO  c
 WHERE c.cod_orgao	= o.codorgao
   AND o.ativos 	= 1
 GROUP BY o.cod_orgao
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 7 visitantes