問題:
テーブルの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
テーブル。