【问题标题】:How to multiply two select values SQL如何将两个选择值相乘 SQL
【发布时间】:2018-08-30 16:25:26
【问题描述】:

我想计算我项目中的每日利润,为此我需要将不同表中的两列相乘。

餐桌顺序:

ID       int,
DATE     date

餐桌菜:

ID        int,
NAME      string,
PRICE     decimal

表属于:

ID         int,
DISH_ID    int,
ORDER_ID   int,
QUANTITY   int (that is number of ordered pieces of specified dish)

为了计算每日利润,对于每个订单中的每道菜,我应该将 DISH 中的 PRICE 列和 BELONG 中的 QUANTITY 列相乘。

你能帮我写一下sql查询吗?
谢谢你:)

【问题讨论】:

  • 你应该添加你尝试过的......
  • 您使用的是哪个DBMS? “SQL”只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加标签postgresqloracledb2sql-server、...
  • 在给定一些示例数据的情况下,了解预期输出的样子会很有帮助。
  • 我正在使用 SQL Server 管理工作室。

标签: sql select


【解决方案1】:

试试下面的查询

Select d.PRICE * b.QUANTITY as DailyProfit
from DISH d join
     BELONG b
     on d.ID = b.DISH_ID

【讨论】:

    【解决方案2】:

    我想你想要这样的东西:

    Select o.date, sum(d.PRICE * b.QUANTITY) as dailyrevenue
    from order o join
         belong b
         on o.id = b.order_id join
         dish d
         on d.ID = b.dish_id
    group by o.date;
    

    注意这里计算的是收入,而不是利润。

    【讨论】:

    • 谢谢,您的回答帮助了我。但我还有一个问题。如何添加所有每日收入结果?当您的解决方案被执行时,我得到了包含两列的表格:DATE 和dailyrevenue(一个dailyrevenue 代表一个订单的成本)。
    • 我解决了问题,谢谢 :) 我的解决方案: 选择 sum(d.PRICE * b.QUANTITY) 作为dailyrevenue from order o join 属于 b on o.id = b.order_id join disc d on d.ID = b.dish_id where cast(o.date as date)=@input_date;
    猜你喜欢
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多