Ir para conteúdo
Fórum Script Brasil
  • 0

COMO SOMAR DOIS CAMPOS DE UMA TABELA E UM CAMPO DE OUTRA TABELA COM REGISTROS COM VALOR TOTAL MYSQL COM PHP


kleberkbj

Pergunta

Boa noite galera!!  estou com dificuldades em conseguir o somatório de de dois campos de uma tabela e o somatório de um campo de outra tabela,

segue assim:

Tenho uma tabela chamada CID_TITULAR  e outra CID_COMPOSICAO. a tabela CID_TITULAR recebe os cadastro de um programa social e a tabela CID_COMPOSICAO o cadastros dos dependentes (filhos, parentes) TITULAR_COD = COMPOSICAO_COD_TITULAR (chave de ligação)

tenho dois campos na CID_TITULAR de valores, são eles: TITULAR_RENDA e TITULAR_RENDA_MENSAL e na outra tabela CID_COMPOSICAO tenho um campo de valor COMPOSICAO_RENDA

estão povoado assim:

 

Na tabela CID_TITULAR nos campos TITULAR_RENDA (R$ 10.00) e TITULAR_RENDA_MENSAL (R$ 10.00) e na tabela CID_COMPOSICAO no campo COMPOSICAO_RENDA tenho 3 registros com os valores R$ 300.00, R$ 200.00 e R$ 100.00

GOSTARIA QUE A SELEÇÃO FOSSE O VALOR DOS DOIS CAMPOS DA TABELA CID_TITULAR + O CAMPO DA OUTRA TABELA CID_COMPOSICAO

 

NO CASO O SOMATÓRIO CORRETO SERIA R$ 620,00

10,00 no campo TITULAR_RENDA

10,00 no campo TITULAR_RENDA_MENSAL

300,00 NO 1º REGISTRO no campo COMPOSICAO_RENDA

200,00 NO 2º REGISTRO no campo COMPOSICAO_RENDA

100,00 NO 3º REGISTRO no campo COMPOSICAO_RENDA

 

TOTALIZANDO R$ 620,00

O PROBLEMA É:

Quando faço a seleção com inner join a resposta é R$ 660,00 e não 620,00. a seleção triplica o valor da primeira tabela devido ter três registros na tabela CID_COMPOSICAO

 

TABELA CID_TITULAR

CREATE TABLE `cid_titular` (
  `titular_cod` int(11) NOT NULL AUTO_INCREMENT,
  `titular_renda` float(10,2) DEFAULT NULL,
  `titular_renda_mensal` float(10,2) DEFAULT NULL,
  PRIMARY KEY (`titular_cod`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

 

TABELA CID_COMPOSICAO

CREATE TABLE `cid_composicao` (
  `composicao_cod` int(11) NOT NULL AUTO_INCREMENT,
  `composicao_cod_titular` int(11) DEFAULT NULL,
  `composicao_renda` float(10,2) DEFAULT NULL,
  PRIMARY KEY (`composicao_cod`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

GOSTARIA MUITO DE AJUDA GALERA. OBRIGADO!!!!

 

Captura de tela de 2019-09-20 18-26-25.png

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Tenta assim

SELECT *, (titular_renda+titular_renda_mensal+composicao_renda) AS renda_total
FROM CID_TITULAR
INNER JOIN (
  SELECT composicao_cid_titular, SUM(composicao_renda) as composicao_renda
  FROM CID_COMPOSICAO
  GROUP BY composicao_cid_titular
) as CID_COMPOSICAO ON titular_cod = composicao_cid_titular
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...