我有三个表:股票,订单和订单 . 我在Order表中有一个Total列,我希望包含每个订单的订单行总和 . Orderline表由Order_id,Stock_id和Qty组成,Stock表具有Stock_id和Price . 我可以过滤与每个Order_id关联的Stock_ids并显示每个Order_id的数量,我认为我需要使用内部联接来计算每个订单的成本,方法是将每个Stock_id的价格相加并将其乘以Orderline中的数量表和Stock表中的价格,但我不知道从哪里开始 . 我还希望在为每个Order_id计算时将其添加到数据库中的Total列,并且不知道如何执行此操作 . 我正在使用SQLite3 . 任何帮助将不胜感激 .
订单表:order_id,order_total,order_datetime
订单表:order_id,stock_id,qty
股票表:stock_id,stock_price,stock_name
1 回答
这是一个基本查询,
INNER JOIN
按订单ID分组,为您提供订单总额 . 您可以在GROUP BY
之前的WHERE
子句中执行您需要的任何过滤器 .虽然sqlite不支持计算列,但您有2个选项:
创建添加到
Order
表的列以存储总计的值,然后在Orderline
和Stock
表上创建触发器以重新计算已修改记录的总计 .将上面的查询转换为单独的视图,然后在需要总计时从创建的视图到
Order
表执行INNER JOIN
.