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.