Pergunte aqui
0

soma de duas subconsultas e mostrar em um formulário

perguntadas 2013-03-04 02:30:08 +0100

imagem do gravatar de Professor_estudante

Estou desenvolvendo um aplicação no BASE de controle de orçamento familiar, onde um formulário mostra as despesas(exemplo: aluguel, alimentação, gastos fixos...) e os rendimentos de cada mês, alem de mostrar o saldo que é rendimento - despesa. Bem, através de várias subconsultas, consegui que o formulário mostrasse as despesas e os rendimentos por cada mês, porem não consigo totalizar as despesas e os rendimentos, isto é, somar todas as despesas e somar todos os rendimentos pra cada mês. Pesquisei na internet e não encontrei nenhuma solução. Tentei somar duas ou mais subconsultas mas resulta em erro na sintaxe do sql. Agradeço quem ajudar.

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

4 Respostas

0

respondidas 2013-03-22 23:15:47 +0100

imagem do gravatar de Professor_estudante

Obrigadão mesmo Grafeno, ta funcionando direitinho. valeu.

editar assinalar como ofensivo Excluir Link mais

Comentários

De nada professor_estudante! É um sempre um prazer ajudar...

imagem do gravatar de GrafenoGrafeno ( 2013-03-23 17:18:16 +0100 )editar
0

respondidas 2013-03-08 00:03:26 +0100

imagem do gravatar de Grafeno

Qual controle, ou controles, vc está usando no formulário para exibir os resultados das subconsultas?

Se for um Controle de Tabela, uma possibilidade é criar uma coluna com o acumulado das despesas e outra com o acumulado dos rendimentos.

  • Aqui tem um exemplo de uma subconsulta que acumula valor por grupo.

At.te,

Grafeno (Antonio)

editar assinalar como ofensivo Excluir Link mais
0

respondidas 2013-03-11 18:45:09 +0100

imagem do gravatar de Grafeno

Bom tarde,

Após o detalhamento do seu caso, fiz vários testes, quebrei a cabeça e cheguei a uma solução.

Insira essa consulta no Editor de SQL, confirmando que está marcada a opção "Executar o comando SQL diretamente":

SELECT *,
"Jan Rend"-"Jan Desp" AS "Jan Saldo",
"Fev Rend"-"Fev Desp" AS "Fev Saldo",
"Mar Rend"-"Mar Desp" AS "Mar Saldo",
"Abr Rend"-"Abr Desp" AS "Abr Saldo"
FROM
( SELECT *,
COALESCE("Jan cartão",'0')+COALESCE("jan fixos",'0')+COALESCE("jan mercantil",'0')+COALESCE("jan outros",'0') AS "Jan Desp",
COALESCE("Fev cartao",'0')+COALESCE("fev fixos",'0')+COALESCE("fev mercantil",'0')+COALESCE("fev outros",'0') AS "Fev Desp",
COALESCE("mar cartao",'0')+COALESCE("mar fixos",'0')+COALESCE("mar mercantil",'0')+COALESCE("mar outros",'0') AS "Mar Desp",
COALESCE("abr cartao",'0')+COALESCE("abr fixos",'0')+COALESCE("abr mercantil",'0')+COALESCE("abr outros",'0') AS "Abr Desp",
COALESCE("jan salario",'0')+COALESCE("jan outras_rendas",'0') AS "Jan Rend",
COALESCE("fev salario",'0')+COALESCE("fev outras_rendas",'0') AS "Fev Rend",
COALESCE("mar salario",'0')+COALESCE("mar outras_rendas",'0') AS "Mar Rend",
COALESCE("abr salario",'0')+COALESCE("abr outras_rendas",'0') AS "Abr Rend"
FROM 
( SELECT SUM( "valor" ) AS "Jan cartão" FROM "gastos_cartao" WHERE "mes_referef" = '0' ),
 ( SELECT SUM( "valor" ) AS "Fev cartao" FROM "gastos_cartao" WHERE "mes_referef" = '1' ),
 ( SELECT SUM( "valor" ) AS "mar cartao" FROM "gastos_cartao" WHERE "mes_referef" = '2' ),
 ( SELECT SUM( "valor" ) AS "abr cartao" FROM "gastos_cartao" WHERE "mes_referef" = '3' ),
 ( SELECT SUM( "valor" ) AS "mai cartao" FROM "gastos_cartao" WHERE "mes_referef" = '4' ),
( SELECT SUM( "valor" ) AS "jan fixos" FROM "inserir_gastos_fixo" WHERE MONTH( "data" ) = '01' ),
 ( SELECT SUM( "valor" ) AS "fev fixos" FROM "inserir_gastos_fixo" WHERE MONTH( "data" ) = '02' ),
 ( SELECT SUM( "valor" ) AS "mar fixos" FROM "inserir_gastos_fixo" WHERE MONTH( "data" ) = '03' ),
 ( SELECT SUM( "valor" ) AS "abr fixos" FROM "inserir_gastos_fixo" WHERE MONTH( "data" ) = '04' ),
 ( SELECT SUM( "valor" ) AS "jan mercantil" FROM "gasto_dinheiro" WHERE MONTH( "Data" ) = '01' AND "area" = '101' ),
 ( SELECT SUM( "valor" ) AS "fev mercantil" FROM "gasto_dinheiro" WHERE MONTH( "Data" ) = '02' AND "area" = '101' ),
 ( SELECT SUM( "valor" ) AS "mar mercantil" FROM "gasto_dinheiro" WHERE MONTH( "Data" ) = '03' AND "area" = '101' ),
 ( SELECT SUM( "valor" ) AS "abr mercantil" FROM "gasto_dinheiro" WHERE MONTH( "Data" ) = '04' AND "area" = '101' ),
 ( SELECT SUM( "valor" ) AS "jan outros" FROM "gasto_dinheiro" WHERE NOT "area" = '101' AND MONTH( "Data" ) = '01' ),
 ( SELECT SUM( "valor" ) AS "fev outros" FROM "gasto_dinheiro" WHERE NOT "area" = '101' AND MONTH( "Data" ) = '02' ),
 ( SELECT SUM( "valor" ) AS "mar outros" FROM "gasto_dinheiro" WHERE NOT "area" = '101' AND MONTH( "Data" ) = '03 ...
(more)
editar assinalar como ofensivo Excluir Link mais
0

respondidas 2013-03-09 19:39:09 +0100

imagem do gravatar de Professor_estudante

Obrigado por responder. Acho que o exemplo que você enviou não dá certo. Eu utilizo várias tabelas relacionadas e como o formulário só mostra uma única tabela ou uma única consulta ( se existir uma forma de de inserir duas consultas seria mais fácil resolver meu problema...) eu utilizo várias subconsultas para calcular e mostrar os resultados. Vou exmplicar melhor: Há varias tabelas:

tabela gastos_cartao:

|id cartao|cod_cartao|valor| area|condicoes pagamento|data|

tabela gastos_extras:

|id gasto_extra|descricao| area | valor | data |

tabela gastos_fixos:

|id fixos| descricao | area | valor | data |

tabela redimentos :

|id rend | descricao | valor | data|

deverá aparecer assim no formulário ( os valores são mostrados através de caixas de texto).

            | JAN | FEV | MAR | ABR |
DESPESAS    | 300 | 300 | 300 | 300 | 
 cartoes    | 100 | 100 | 100 | 100 |
 fixos      | 100 | 100 | 100 | 100 |
 extras     | 100 | 100 | 100 | 100 |
RENDIMENTOS | 500 | 500 | 500 | 500 |
 salario    | 500 | 500 | 500 | 500 |
 13º        | 00  | 00  | 00  | 00  |
 ferias     | 00  | 00  | 00  | 00  |
 outros     | 00  | 00  | 00  | 00  |
SALDO (rendimento - despesa)
            |200  | 200 | 200 | 200 |

como não consegui inserir várias consultas no formulário, tive que fazer uma única consulta com várias subconsultas:

SELECT * FROM 
( SELECT SUM( "valor" ) AS "Jan cartão" FROM "gastos_cartao" WHERE "mes_referef" = '0' ),
 ( SELECT SUM( "valor" ) AS "Fev cartao" FROM "gastos_cartao" WHERE "mes_referef" = '1' ),
 ( SELECT SUM( "valor" ) AS "mar cartao" FROM "gastos_cartao" WHERE "mes_referef" = '2' ),
 ( SELECT SUM( "valor" ) AS "abr cartao" FROM "gastos_cartao" WHERE "mes_referef" = '3' ),
 ( SELECT SUM( "valor" ) AS "mai cartao" FROM "gastos_cartao" WHERE "mes_referef" = '4' ),
( SELECT SUM( "valor" ) AS "jan fixos" FROM "inserir_gastos_fixo" WHERE MONTH( "data" ) = '01' ),
 ( SELECT SUM( "valor" ) AS "fev fixos" FROM "inserir_gastos_fixo" WHERE MONTH( "data" ) = '02' ),
 ( SELECT SUM( "valor" ) AS "mar fixos" FROM "inserir_gastos_fixo" WHERE MONTH( "data" ) = '03' ),
 ( SELECT SUM( "valor" ) AS "abr fixos" FROM "inserir_gastos_fixo" WHERE MONTH( "data" ) = '04' ),
 ( SELECT SUM( "valor" ) AS "jan mercantil" FROM "gasto_dinheiro" WHERE MONTH( "Data" ) = '01' AND "area" = '101' ),
 ( SELECT SUM( "valor" ) AS "fev mercantil" FROM "gasto_dinheiro" WHERE MONTH( "Data" ) = '02' AND "area" = '101' ),
 ( SELECT SUM( "valor" ) AS "mar mercantil" FROM "gasto_dinheiro" WHERE MONTH( "Data" ) = '03' AND "area" = '101' ),
 ( SELECT SUM( "valor" ) AS "abr mercantil" FROM "gasto_dinheiro" WHERE MONTH( "Data" ) = '04' AND "area" = '101' ),
 ( SELECT SUM( "valor" ) AS "jan outros" FROM "gasto_dinheiro" WHERE NOT "area" = '101' AND MONTH( "Data" ) = '01' ),
 ( SELECT SUM( "valor" ) AS "fev outros" FROM "gasto_dinheiro" WHERE NOT "area" = '101' AND MONTH( "Data" ) = '02' ),
 ( SELECT SUM( "valor" ) AS "mar outros" FROM "gasto_dinheiro" WHERE NOT "area" = '101' AND MONTH( "Data" ) = '03' ),
 ( SELECT SUM( "valor" ) AS "abr ...
(more)
editar assinalar como ofensivo Excluir Link mais
Login/Registrar para responder

Ferramentas de perguntas

Estatísticas

Perguntadas: 2013-03-04 02:30:08 +0100

Lidas: 2,289 vezes

Última atualização: Mar 22 '13