Problém:
chcete vynásobit hodnoty ze dvou sloupců tabulky.
Příklad:
Naše databáze obsahuje tabulku s názvem purchase s údaji v následujících sloupcích:id , name , price , quantity a discount_id .
| id | jméno | cena | množství | id_slevy |
|---|---|---|---|---|
| 1 | pero | 7 | 3 | 1 |
| 2 | notebook | 5 | 8 | 2 |
| 3 | guma | 11 | 3 | 1 |
| 4 | penál | 24 | 2 | 3 |
Vynásobme cenu množstvím produktů, abychom zjistili, kolik jste zaplatili za jednotlivé položky v objednávce.
Řešení:
SELECT name, price*quantity AS total_price FROM purchase;
Tento dotaz vrací záznamy s názvem produktu a jeho celkovou cenou:
| name | celková_cena |
|---|---|
| pero | 21 |
| notebook | 40 |
| guma | 33 |
| penál | 48 |
Diskuse:
Potřebujete vybrat název každého záznamu (v našem případě name ) a vypočítejte pro něj výsledek vynásobení jednoho číselného sloupce druhým (price a quantity )? Vše, co musíte udělat, je použít operátor násobení (*) mezi dvěma sloupci multiplikátu (price * quantity ) v jednoduchém SELECT dotaz. Tomuto výsledku můžete přiřadit alias pomocí AS klíčové slovo; v našem příkladu jsme dali sloupci násobení alias total_price .
Všimněte si, že můžete také použít data ze dvou sloupců pocházejících z různých tabulek. V naší databázi máme další tabulku s názvem discount který má sloupce s názvem id a value; druhý představuje procentuální slevu na položku s daným ID.
| id | hodnota |
|---|---|
| 1 | 10 |
| 2 | 20 |
| 3 | 30 |
Podívejte se na příklad níže.
Řešení:
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;
Zde je výsledek:
| name | celková_cena |
|---|---|
| pero | 18,90 |
| notebook | 32,00 |
| guma | 29,70 |
| penál | 33,60 |
Jak vidíte, je docela snadné násobit hodnoty z různých spojených tabulek. V našem příkladu výše jsme cenu každého produktu vynásobili jeho množstvím z jedné tabulky (purchase ) a poté tuto celkovou cenu vynásobte procentuální slevou pomocí discount tabulka.