gpt4 book ai didi

3表内连接的SQL计算

转载 作者:行者123 更新时间:2023-12-03 19:30:49 25 4
gpt4 key购买 nike

我有三个表:Stock、Orderline 和 Order。我在 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, 数量

库存表:
stock_id、stock_price、stock_name

最佳答案

这是一个带有 INNER JOIN 的基本查询。按订单 ID 分组,按订单为您提供总计。您可以在 WHERE 中执行您需要的任何过滤器。 GROUP BY 之前的子句.

SELECT
O.order_id,
SUM(S.stock_price * OL.qty) AS [Total]
FROM Order O
INNER JOIN Orderline OL
ON OL.order_id = O.order_id
INNER JOIN Stock S
ON S.stock_id = OL.stock_id
GROUP BY
O.order_id

虽然 sqlite 不支持计算列,但您有 2 个选项:
  • 创建添加到 Order 的列表来存储总计的值,然后在 Orderline 上创建触发器和 Stock表以重新计算修改记录的总数。
  • 将上面的查询转换为单独的 View ,然后执行 INNER JOIN从创建的 View 到您的Order每当您需要总数时都可以使用表格。
  • 关于3表内连接的SQL计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41560112/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com