問題:
テーブルの2つの列の値を乗算したい。
例:
私たちのデータベースには、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;
このクエリは、製品の名前とその合計価格を含むレコードを返します:
| 名前 | total_price |
|---|---|
| ペン | 21 |
| ノートブック | 40 |
| ゴム | 33 |
| 筆箱 | 48 |
ディスカッション:
各レコードの名前(この場合はname)を選択する必要がありますか? )そして、ある数値列に別の数値列を掛けた結果を計算します(price およびquantity )?あなたがする必要があるのは、2つの被乗数列の間で乗算演算子(*)を使用することです(price *quantity )単純なSELECT クエリ。この結果にASのエイリアスを付けることができます キーワード;この例では、乗算列にtotal_priceのエイリアスを指定しました。 。
異なるテーブルからの2つの列のデータを使用することもできることに注意してください。データベースにdiscount idという名前の列があります およびvalue;後者は、指定されたIDを持つアイテムの割引率を表します。
| 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;
結果は次のとおりです。
| 名前 | total_price |
|---|---|
| ペン | 18.90 |
| ノートブック | 32.00 |
| ゴム | 29.70 |
| 筆箱 | 33.60 |
ご覧のとおり、さまざまな結合テーブルの値を乗算するのは非常に簡単です。上記の例では、各商品の価格に1つのテーブルからの数量を掛けました(purchase )次に、discount テーブル。