Database
 sql >> Base de Dados >  >> RDS >> Database

Como multiplicar duas colunas no SQL

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.