COMO SOMAR DOIS CAMPOS DE UMA TABELA E UM CAMPO DE OUTRA TABELA COM REGISTROS COM VALOR TOTAL MYSQL COM PHP
20/09/2019
0
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!!!!
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!!!!
Kleber Justino
Curtir tópico
+ 0
Responder
Posts
20/09/2019
Kleber Justino
Posta o select que está usando
opa amigo!!
SELECT sum(titular_renda+titular_renda_mensal+composicao_renda) as valor_renda_mensal
FROM cid_titular
inner join cid_composicao on (titular_cod = composicao_cod_titular)
where titular_cod = '1'
Responder
Clique aqui para fazer login e interagir na Comunidade :)