Проблем:
искате да умножите стойности от две колони на таблица.
Пример:
Нашата база данни има таблица с име purchase
с данни в следните колони:id
, name
, price
, quantity
и discount_id
.
id | име | цена | количество | discount_id |
---|---|---|---|---|
1 | писалка | 7 | 3 | 1 |
2 | бележник | 5 | 8 | 2 |
3 | гума | 11 | 3 | 1 |
4 | моливник | 24 | 2 | 3 |
Нека умножим цената по количеството на продуктите, за да разберем колко сте платили за всеки артикул от поръчката си.
Решение:
SELECT name, price*quantity AS total_price FROM purchase;
Тази заявка връща записи с името на продукта и общата му цена:
name | обща_цена |
---|---|
химикалка | 21 |
бележник | 40 |
гума | 33 |
моливник | 48 |
Дискусия:
Трябва ли да изберете името на всеки запис (в нашия случай name
) и изчислете за него резултата от умножаването на една числова колона по друга (price
и quantity
)? Всичко, което трябва да направите, е да използвате оператора за умножение (*) между двете колони за умножение (price
* quantity
) в прост SELECT
запитване. Можете да дадете псевдоним на този резултат с AS
ключова дума; в нашия пример дадохме на колоната за умножение псевдоним на total_price
.
Имайте предвид, че можете също да използвате данни от две колони, идващи от различни таблици. Имаме друга таблица в нашата база данни с име discount
който има колони с име id
и value
; последното представлява процентната отстъпка за артикула с дадения идентификатор.
id | стойност |
---|---|
1 | 10 |
2 | 20 |
3 | 30 |
Вижте примера по-долу.
Решение:
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;
Ето резултата:
name | обща_цена |
---|---|
химикалка | 18,90 |
бележник | 32,00 |
гума | 29,70 |
моливник | 33,60 |
Както можете да видите, е доста лесно да умножите стойности от различни обединени таблици. В нашия пример по-горе умножихме цената на всеки продукт по неговото количество от една таблица (purchase
) и след това умножете тази обща цена по процента отстъпка, като използвате discount
таблица.