Tenho duas tabelas km com id, quilometro; e kmsoma com id , quilometros, total;
Quero somar quilometro + quilometros e colocar na coluna total o resultado.
CREATE TABLE km (
id SERIAL PRIMARY KEY NOT NULL,
quilometro INT NOT NULL
);
CREATE TABLE kmsoma (
id SERIAL PRIMARY KEY NOT NULL,
quilometros INT NOT NULL,
km INTEGER,
total INTEGER,
FOREIGN KEY(km) REFERENCES km (id)
);
sou iniciante to vários dias tentando e não consigo
Bom dia, consegue colocar a estrutura das tabelas? para tentar perceber.
editei com colocando a tabelas
Existem várias formas, pode fazer o select assim.
select a.id, a.quilometros, a.km, (a.quilometros + b.quilometro) as total from kmsoma a
INNER JOIN km b on b.id = a.km
notas: onde se encontra (a.quilometros + b.quilometro) as total, (total) passa a ser um alias da soma no parêntesis
Onde se encontra o kmsoma a, (a) passa a ser um alias da tabela kmsoma,
Onde se encontra o km b, (b) passa a ser um alias da tabela km
Onde se encontra INNER JOIN, junta a tabela km, onde a coluna km.id é igual á coluna kmsoma.km, que é a chave estrangeira.
ate ai consegui chegar no select só que queria armazenar o resultado na coluna total. porque quero depois multiplicar esse valor diminuir dividir . comecei pesquisar como fazer com trigger penando ainda nisso.
Não sei qual é o objetivo, no entanto se for fazer um insert na tabela kmsoma, pode somar o km da coluna quilometro inserindo o valor no total.
Ou seja 20 é o valor de quilómetros + e faz um select da outra tabela (km )referenciado o id da coluna km.quilometro que quer somar.
insert into kmsoma ( id, quilometros, km, total) values (1,20, 1, (20+(select km.quilometro from km where id=1))) ;
No caso a tabela kmsoma já está preenchida e vc só quer atualizar a coluna total com a soma, correto?
Se for isso, daria para fazer assim:
UPDATE kmsoma
SET total = km.quilometro + kmsoma.quilometros
FROM km WHERE km.id = kmsoma.km;
valeu muito obrigado solucionaram meu problema
1 curtida
valeu muito obrigado solucionarão meu problema
1 curtida