Boa noite.
Estou tentando fazer um comando de select para mostrar o cliente e o valor total de todas as compras para isso estou multiplicando a quantidade de itens que ele comprou pelo valor do produto e somando o resultado caso o cliente tenha várias ocorrências, já que o mesmo cliente pode realizar várias compras. O problema é que o código está somando o valor de todos os clientes.
create table cliente (
id_cliente smallint unsigned auto_increment,
nome varchar(40),
endereco char(100),
telefone char(13),
cidade char(30),
primary key (id_cliente)
);
create table produto (
id_produto smallint unsigned auto_increment,
nome varchar(40),
preco real,
quantidade int,
primary key (id_produto)
);
create table venda (
id_venda smallint unsigned auto_increment,
id_cliente smallint unsigned,
id_produto smallint unsigned,
id_vendedor smallint unsigned,
quantidade_itens int,
numero_parcelas int,
data_venda timestamp default current_timestamp,
primary key (id_venda),
foreign key (id_cliente)
references cliente (id_cliente),
foreign key (id_produto)
references produto (id_produto),
foreign key (id_vendedor)
references vendedor (id_vendedor)
);
select c.nome, sum(p.preco * v.quantidade_itens)
from cliente c, venda v, produto p
where c.id_cliente = v.id_cliente and p.id_produto = v.id_produto;
O que eu preciso mudar no código?