sql >> Base de Datos >  >> RDS >> Database

Cómo multiplicar dos columnas en SQL

Problema:

quiere multiplicar valores de dos columnas de una tabla.

Ejemplo:

Nuestra base de datos tiene una tabla llamada purchase con datos en las siguientes columnas:id , name , price , quantity y discount_id .

id nombre precio cantidad descuento_id
1 bolígrafo 7 3 1
2 cuaderno 5 8 2
3 goma 11 3 1
4 estuche 24 2 3

Multipliquemos el precio por la cantidad de productos para averiguar cuánto pagó por cada artículo de su pedido.

Solución:

SELECT name,
 price*quantity  AS total_price
FROM purchase;

Esta consulta devuelve registros con el nombre del producto y su precio total:

nombre precio_total
bolígrafo 21
cuaderno 40
goma 33
porta lápices 48

Discusión:

¿Necesita seleccionar el nombre de cada registro (en nuestro caso, name ) y calcular para ello el resultado de multiplicar una columna numérica por otra (price y quantity )? Todo lo que necesitas hacer es usar el operador de multiplicación (*) entre las dos columnas de multiplicando (price * quantity ) en un simple SELECT consulta. Puede dar a este resultado un alias con el AS palabra clave; en nuestro ejemplo, le dimos a la columna de multiplicación un alias de total_price .

Tenga en cuenta que también puede usar datos de dos columnas que provienen de tablas diferentes. Tenemos otra tabla en nuestra base de datos llamada discount que tiene columnas llamadas id y value; el último representa el porcentaje de descuento en el artículo con la identificación dada.

id valor
1 10
2 20
3 30

Mira el siguiente ejemplo.

Solución:

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;

Aquí está el resultado:

nombre precio_total
bolígrafo 18,90
cuaderno 32,00
goma 29,70
porta lápices 33,60

Como puede ver, es bastante fácil multiplicar valores de diferentes tablas unidas. En nuestro ejemplo anterior, multiplicamos el precio de cada producto por su cantidad de una tabla (purchase ) y luego multiplicó este precio total por el porcentaje de descuento usando el discount mesa.