Problem:
chcesz pomnożyć wartości z dwóch kolumn tabeli.
Przykład:
Nasza baza danych zawiera tabelę o nazwie purchase
z danymi w następujących kolumnach:id
, name
, price
, quantity
i discount_id
.
id | imię | cena | ilość | discount_id |
---|---|---|---|---|
1 | długopis | 7 | 3 | 1 |
2 | notatnik | 5 | 8 | 2 |
3 | guma | 11 | 3 | 1 |
4 | piórnik | 24 | 2 | 3 |
Pomnóżmy cenę przez ilość produktów, aby dowiedzieć się, ile zapłaciłeś za każdy przedmiot w swoim zamówieniu.
Rozwiązanie:
SELECT name, price*quantity AS total_price FROM purchase;
To zapytanie zwraca rekordy z nazwą produktu i jego całkowitą ceną:
nazwa | całkowita cena |
---|---|
pióro | 21 |
notatnik | 40 |
guma | 33 |
piórnik | 48 |
Dyskusja:
Czy musisz wybrać nazwę każdego rekordu (w naszym przypadku name
) i oblicz dla niego wynik mnożenia jednej kolumny numerycznej przez drugą (price
i quantity
)? Wszystko, co musisz zrobić, to użyć operatora mnożenia (*) między dwiema kolumnami mnożenia (price
* quantity
) w prostym SELECT
zapytanie. Możesz nadać temu wynikowi alias z AS
słowo kluczowe; w naszym przykładzie nadaliśmy kolumnie mnożenia alias total_price
.
Pamiętaj, że możesz również użyć danych z dwóch kolumn pochodzących z różnych tabel. W naszej bazie danych mamy kolejną tabelę o nazwie discount
który ma kolumny o nazwie id
i value
; ta ostatnia reprezentuje procentową zniżkę na produkt o podanym identyfikatorze.
id | wartość |
---|---|
1 | 10 |
2 | 20 |
3 | 30 |
Spójrz na poniższy przykład.
Rozwiązanie:
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;
Oto wynik:
nazwa | całkowita cena |
---|---|
pióro | 18,90 |
notatnik | 32,00 |
guma | 29,70 |
piórnik | 33,60 |
Jak widać, dość łatwo jest pomnożyć wartości z różnych połączonych tabel. W powyższym przykładzie pomnożyliśmy cenę każdego produktu przez jego ilość z jednej tabeli (purchase
), a następnie pomnożyć tę całkowitą cenę przez procent rabatu, korzystając z opcji discount
tabela.