Skip to content

Instantly share code, notes, and snippets.

@tkovs
Last active November 18, 2015 00:47
Show Gist options
  • Save tkovs/07f778ccc9500d4e0a1d to your computer and use it in GitHub Desktop.
Save tkovs/07f778ccc9500d4e0a1d to your computer and use it in GitHub Desktop.
[RESOLVIDO] Dúvida sobre QUERY
Tenho as seguintes tabelas:
SELECT * FROM cliente;
id nome celular
---------- ---------- ----------
1 Joao 981******
2 Nivaldo 981******
3 Layse 981******
4 Raimundo 981******
5 Arthur 981******
6 Vera 981******
7 Nilda 981******
8 Jackson 981******
SELECT * FROM produto;
id nome preco
---------- ---------- ----------
1 Biscoito 1.5
2 Pizza 20.0
3 Churros 2.0
4 Cachorro Q 3.0
5 Coxinha 2.75
6 Panqueca 2.5
SELECT * FROM venda;
id codigo idCliente idProduto quantidade
---------- ---------- ---------- ---------- ----------
1 43 8 1 3
2 43 8 6 1
3 43 8 4 2
6 66 1 4 3
7 66 1 6 10
Fiz a seguinte query:
SELECT cliente.nome, produto.nome, venda.quantidade, (produto.preco * venda.quantidade) AS 'total a pagar' FROM produto, cliente, venda WHERE cliente.id = venda.idCliente AND venda.idProduto = produto.id;
Que me retornou
nome nome quantidade total a pagar
---------- ---------- ---------- -------------
Jackson Biscoito 3 4.5
Jackson Panqueca 1 2.5
Jackson Cachorro Q 2 6.0
Joao Cachorro Q 3 9.0
Joao Panqueca 10 25.0
Quero saber como mostrar o seguinte:
nome total a pagar
---------- -------------
Jackson 13.0
Joao 34.0
O mais perto que cheguei foi a seguinte query:
SELECT cliente.nome, (produto.preco * venda.quantidade) AS 'total a pagar' FROM produto, cliente, venda WHERE cliente.id = venda.idCliente AND venda.idProduto = produto.id;
Que me retorna o seguinte:
nome total a pagar
---------- -------------
Jackson 4.5
Jackson 2.5
Jackson 6.0
Joao 9.0
Joao 25.0
[EDIT]
Adicionei um GROUP BY no nome do cliente mas só exibia um dos valores que deveriam ser pagos, não a soma deles. Pra ajeitar eu usei a função sum na coluna total a pagar. Ficou assim:
SELECT cliente.nome, sum((produto.preco * venda.quantidade)) AS 'total a pagar' FROM produto, cliente, venda WHERE cliente.id = venda.idCliente AND venda.idProduto = produto.id GROUP BY cliente.nome;
Resultado:
nome total a pagar
---------- -------------
Jackson 13.0
Joao 34.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment