Usar resultado de subquery

Estou precisando fazer a seguinte consulta, tenho uma tabelas saídas nesta tabela tem a coluna saidvalortotal e saidcodcliente(que referencia a tabela cliente), preciso fazer uma consulta que traga o valor total de todas as notas emitdas de todos os clientes.

Exemplo:

Cliente n°27 tem 3 notas no valor de 100 reais, preciso que a consulta traga a soma das 3 notas fiscais e o nome do cliente(o nome do cliente fica na tabela cliente).

Consulta que comecei a fazer:

select clientes.clienome,saidas.saidvalornota
   (select sum(saidvalornota)  from saidas ) FROM CLIENTES
order by clientes.clienome;
1 curtida

Pode passar a estrutura das duas tabelas?

Você precisa agrupar os dados (GROUP BY) e pode ser feito com INNER JOIN ou SubQuery e/ou etc. vai depender da estrutura das tabelas.

1 curtida

Algo assim?

select c.clienome, sum(s.saidvalornota)
  from clientes c inner join saidas s on s.saidcodcliente = c.codclient -- não sei se  nome deste campo está correto
 group by c.clienome
 order by c.clienome;

Atenção que se tiveres dois clientes com o mesmo nome vai agrupar como sendo um só. Nesse caso, aconselho a acrescentar o id no select

select s.saidcodcliente, c.clienome, sum(s.saidvalornota)
  from clientes c inner join saidas s on s.saidcodcliente = c.codclient 
 group by s.saidcodcliente, c.clienome
 order by c.clienome;
1 curtida

Deu certo, so que eu queria uma maneira de fazer com subquery também para entender melhor o uso da subquery(Onde estou com dificuldades).

Neste caso podes ter duas maneiras distintas:

#1 Obter todos os clientes da tabela de clientes e ter uma subquery para os totais

 select c.clienome, (select sum(s.saidvalornota) from saidas s where s.saidcodcliente = c.codclient) as soma
   from clientes c 
  order by c.clienome

#2 Obter os agrupamentos da tabela de saidas e ter uma subquery para o nome do cliente

select s.saidcodcliente, (select c.clienome from clientes c where s.saidcodcliente = c.codclient) as nome, sum(s.saidvalornota)
  from saidas s 
 group by s.saidcodcliente
1 curtida

deu pra entender a lógica, obrigado!