如何创建一个包含多个项目的订单的函数?

时间:2019-04-11 21:15:44

标签: sql database

我需要创建一个函数,该函数将返回订单总数。我得到了三个带有以下变量的表

表1-订单

  • Order_ID
  • 放置日期
  • 完成日期

表2-订购产品

  • Order_ID
  • 产品ID
  • 产品数量

表3-产品

  • 产品ID
  • 价格

我正在努力整合功能。任何帮助将不胜感激。

我已经尝试通过两个表之间的连接来设置函数,但是无法弄清楚应该在哪里放置方程式。

@data

3 个答案:

答案 0 :(得分:2)

您可能会感到惊讶,但是此查询不需要orders表。您可以汇总其他两个表:

SELECT oi.order_id, SUM(p.price * oi.quantity)
FROM order_item oi JOIN
     product p
     ON po.product_id = p.product_id
GROUP BY oi.order_id;

答案 1 :(得分:1)

您需要使用select语句,并在group之前order.order_id。这样一来,每个订单就会有一行,而该订单的总数为sum

SELECT order.order_id, SUM(product.price * order_item.quantity) as total_price
FROM `order`
JOIN `order_item` ON order.order_id = order_product.order_id
JOIN `product` ON order_product.product_id = product.product_id
GROUP BY order.order_id

答案 2 :(得分:0)

这将起作用:

SELECT order.order_id, SUM(product.price * order_item.quantity)
FROM order o,
JOIN order_item  oi,  
JOIN product p  where 
o.order_id = oi.order_id and
oi.product_id = p.product_id
group by order_product.product_id = product.product_id;