Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

While duas tabelas

03-12-2013 00:04

Tenho duas tabelas


- financ_receita (Valores positivos de entrada)
- financ_despesa (Valores negativos de saída)

<?php mysql_select_db($database_conexao, $conexao); $query_rsAnoAtualEntrada = "SELECT ID_FinanE, SUM(valor) AS SomaEntradaAtual, data FROM financ_receita WHERE YEAR(data) = ".date("Y")." GROUP BY MONTH(data)"; $rsAnoAtualEntrada = mysql_query($query_rsAnoAtualEntrada, $conexao) or die(mysql_error()); $row_rsAnoAtualEntrada = mysql_fetch_assoc($rsAnoAtualEntrada); $totalRows_rsAnoAtualEntrada = mysql_num_rows($rsAnoAtualEntrada); ?> <?php mysql_select_db($database_conexao, $conexao); $query_rsAnoAtualSaida = "SELECT ID_FinanS, SUM(valor) AS SomaSaidaAtual, data FROM financ_despesa WHERE YEAR(data) = ".date("Y")." GROUP BY MONTH(data)"; $rsAnoAtualSaida = mysql_query($query_rsAnoAtualSaida, $conexao) or die(mysql_error()); $row_rsAnoAtualSaida = mysql_fetch_assoc($rsAnoAtualSaida); $totalRows_rsAnoAtualSaida = mysql_num_rows($rsAnoAtualSaida); ?>


Estou fazendo o while

<?php do { ?> <?php } while ($row_rsAnoAtualEntrada = mysql_fetch_assoc($rsAnoAtualEntrada)); ?>




Estou fazendo o select de todos os resultado do ano e agrupando pelos meses. Então se tiver vários valores do mesmo mês e ano, soma e mostra o valor da entrada. Até ai OK.

Agora preciso mostrar também no mesmo while os valores de saída, pois acontece de mesmo mês não ter nenhum valor de entrada, mas já existir o de saída, como lançamento programado.


Como fazer?
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

While duas tabelas

03-12-2013 10:34

Minha SQL


CREATE TABLE IF NOT EXISTS `financ_despesa` (   `ID_FinanS` INT(255) NOT NULL AUTO_INCREMENT,   `id_fornec` INT(255) NOT NULL,   `nome` VARCHAR(255) NOT NULL,   `planoDeConta` VARCHAR(20) NOT NULL COMMENT 'Plano de conta',   `valor` VARCHAR(20) NOT NULL,   `data` DATE NOT NULL,   `transao` VARCHAR(2) NOT NULL COMMENT '[SN] Saida Normal [TR]Transferencia',   `numDocumento` VARCHAR(100) DEFAULT NULL COMMENT 'Numero do documento caso exista.',   `hora` VARCHAR(8) DEFAULT NULL COMMENT 'Hora da transacao',   `contaDeDebito` VARCHAR(5) NOT NULL COMMENT 'Conta a qual esta saindo o dinheiro.',   `formaPagamento` VARCHAR(5) NOT NULL COMMENT 'Forma que esta sendo feito o pagamento. Dinheiro, Cartão, ...',   `obs` VARCHAR(255) DEFAULT NULL,   `cheqBomPara` VARCHAR(10) DEFAULT NULL COMMENT 'Data Prevista para compensar/debitar/sacar.',   `cheqBanco` VARCHAR(5) DEFAULT NULL,   `cheqAgencia` VARCHAR(20) DEFAULT NULL,   `cheqNumero` INT(20) DEFAULT NULL,   PRIMARY KEY (`ID_FinanS`) );   INSERT INTO `financ_despesa` (`ID_FinanS`, `id_fornec`, `nome`, `planoDeConta`, `valor`, `data`, `transao`, `numDocumento`, `hora`, `contaDeDebito`, `formaPagamento`, `obs`, `cheqBomPara`, `cheqBanco`, `cheqAgencia`, `cheqNumero`) VALUES (1, 1, 'Teste', '', '777.77', '2013-07-07', 'SN', NULL, '22:48:00', '1', '1', NULL, NULL, NULL, NULL, NULL);       CREATE TABLE IF NOT EXISTS `financ_receita` (   `ID_FinanE` INT(255) NOT NULL AUTO_INCREMENT,   `id_cadastro` INT(255) NOT NULL,   `nome` VARCHAR(255) NOT NULL,   `planoDeConta` VARCHAR(20) NOT NULL COMMENT 'Plano de Conta',   `valor` VARCHAR(20) NOT NULL,   `data` DATE NOT NULL,   `envelope` VARCHAR(50) DEFAULT NULL COMMENT 'Nr. de envelope caso exista.',   `contaBancaria` INT(5) NOT NULL COMMENT 'Conta bancária que ira receber o valor.',   `formaEntrada` INT(5) NOT NULL COMMENT 'Dinheiro, Cheque, Cartão, ...',   `obs` VARCHAR(255) DEFAULT NULL,   `cheqNomeProprietario` VARCHAR(255) DEFAULT NULL,   `cheqBanco` VARCHAR(5) DEFAULT NULL,   `cheqAgencia` VARCHAR(20) DEFAULT NULL,   `cheqConta` VARCHAR(20) DEFAULT NULL,   `cheqNumero` VARCHAR(20) DEFAULT NULL,   `cheqDataDeposito` VARCHAR(10) DEFAULT NULL,   PRIMARY KEY (`ID_FinanE`) );     INSERT INTO `financ_receita` (`ID_FinanE`, `id_cadastro`, `nome`, `planoDeConta`, `valor`, `data`, `envelope`, `contaBancaria`, `formaEntrada`, `obs`, `cheqNomeProprietario`, `cheqBanco`, `cheqAgencia`, `cheqConta`, `cheqNumero`, `cheqDataDeposito`) VALUES (1, 1, 'Tiago', '3.1.01', '300.00', '2013-12-02', NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (2, 2, 'Membro de teste 1', '3.1.01', '250.00', '2012-10-07', NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (3, 3, 'Membro de teste 2', '3.1.01', '700.00', '2013-12-02', NULL, 1, 2, 'Depositar somente na data', 'Fulano de teste', '18', '5545', '3215-5', '122211122', '2013-12-17'), (4, 1, 'Tiago', '3.1.01', '125.70', '2012-12-01', NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (5, 0, 'Visitante', '3.1.01', '55.00', '2013-10-02', NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (6, 1, 'Tiago Pereira Caus', '3.1.01', '300.00', '2012-12-02', NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (7, 2, 'Membro de teste 1', '3.1.01', '250.00', '2012-10-07', NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (8, 3, 'Membro de teste 2', '3.1.01', '700.00', '2013-12-02', NULL, 1, 2, 'Depositar somente na data', 'Fulano de teste', '18', '5545', '3215-5', '122211122', '2011-12-17'), (9, 1, 'Tiago', '3.1.01', '125.70', '2013-12-01', NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (10, 1, 'Tiago', '3.1.01', '125.70', '2011-12-01', NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (11, 1, 'Tiago', '3.1.01', '125.70', '2012-12-01', NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (12, 1, 'Tiago', '3.1.01', '125.70', '2012-08-01', NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (13, 1, 'Tiago', '3.1.01', '125.70', '2012-01-01', NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (14, 1, 'Tiago', '3.1.01', '125.70', '2012-02-01', NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (15, 0, 'Visitante', '3.1.01', '55.00', '2011-10-02', NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL);    

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

While duas tabelas

03-12-2013 16:49

Talvez se você criar uma função com a consulta que retorna os valores de saída, e chamar essa função no primeiro select dê certo.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 166
Nome: Bruno Bandeira
Sexo: Masculino
Contato:

While duas tabelas

04-12-2013 19:22

Que tal se você fizer um join nas tabelas e buscar tudo numa mesma consulta. Ordenando por data?
Não adiantaria?
0

Quem está online

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