Problema:
deseja multiplicar valores de duas colunas de uma tabela.
Exemplo:
Nosso banco de dados tem uma tabela chamada
purchase com dados nas seguintes colunas:id , name , price , quantity e discount_id . | id | nome | preço | quantidade | discount_id |
|---|---|---|---|---|
| 1 | caneta | 7 | 3 | 1 |
| 2 | caderno | 5 | 8 | 2 |
| 3 | borracha | 11 | 3 | 1 |
| 4 | estojo de lápis | 24 | 2 | 3 |
Vamos multiplicar o preço pela quantidade dos produtos para descobrir quanto você pagou por cada item do seu pedido.
Solução:
SELECT name, price*quantity AS total_price FROM purchase;
Esta consulta retorna registros com o nome do produto e seu preço total:
| nome | total_price |
|---|---|
| caneta | 21 |
| caderno | 40 |
| borracha | 33 |
| estojo de lápis | 48 |
Discussão:
Você precisa selecionar o nome de cada registro (no nosso caso,
name ) e calcule para ela o resultado da multiplicação de uma coluna numérica por outra (price e quantity )? Tudo o que você precisa fazer é usar o operador de multiplicação (*) entre as duas colunas do multiplicando (price * quantity ) em um simples SELECT inquerir. Você pode dar a este resultado um alias com o AS palavra-chave; em nosso exemplo, demos à coluna de multiplicação um alias de total_price . Observe que você também pode usar dados de duas colunas provenientes de tabelas diferentes. Temos outra tabela em nosso banco de dados chamada
discount que tem colunas chamadas id e value; o último representa o desconto percentual no item com o ID fornecido. | id | valor |
|---|---|
| 1 | 10 |
| 2 | 20 |
| 3 | 30 |
Veja o exemplo abaixo.
Solução:
SELECT p.name, p.price*p.quantity*(100-d.value)/100 AS total_price FROM purchase p JOIN discount d ON d.id=p.discount_id;
Aqui está o resultado:
| nome | total_price |
|---|---|
| caneta | 18,90 |
| caderno | 32,00 |
| borracha | 29,70 |
| estojo de lápis | 33,60 |
Como você pode ver, é muito fácil multiplicar valores de diferentes tabelas unidas. Em nosso exemplo acima, multiplicamos o preço de cada produto por sua quantidade de uma tabela (
purchase ) e, em seguida, multiplique esse preço total pelo desconto percentual usando o discount tabela.