sql >> データベース >  >> RDS >> Database

SQLで2つの列を乗算する方法

    問題:

    テーブルの2つの列の値を乗算したい。

    例:

    私たちのデータベースには、purchase 次の列にデータがあります:idnamepricequantity 、および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 テーブル。


    1. トップ30の最も有用な並行マネージャークエリ

    2. ツリー階層を取得するためのCTE再帰

    3. WindowsPowerShellのSalesforceSOQL

    4. Oracleプロシージャでテーブルを切り捨てる方法は?