子查询使用外部查询中未分组的列“psi.product\u id”

ogsagwnx  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(370)

我有以下型号:

我想知道每件存货的订购总额。在我的模型中,每个产品都与一个或多个库存项目和一个数量相关联。每个订单项目都与一个产品相关联,也有一个金额。
示例:产品是“螺丝盒”,它链接到50倍库存项目“螺丝”。一位客户订购了3个“螺丝盒”。因此总共订购了150个螺钉。
我构建的查询如下所示:

SELECT
  stock_item.id,
  (
    SELECT
      SUM("amount"),
      (
        SELECT SUM("amount")
        FROM order_item AS item
        WHERE item.product_id = psi.product_id
      ) AS "item_amount"
    FROM product_productstockitem AS psi
    WHERE psi.stock_item_id = stock_item.id
  ) AS "product_amount"
FROM stock_stockitem AS stock_item
;

postgresql告诉我:

ERROR:  subquery uses ungrouped column "psi.product_id" from outer query
LINE 10:         WHERE item.product_id = psi.product_id

如何做到这一点?

vpfxa7rd

vpfxa7rd1#

我认为您需要将表连接在一起并聚合:

select s.id,
       sum(psi.amount * oi.amount)
from stock_stockitem s left join
     product_productstockitem psi
     on psi.stock_item_id = stock_item.id left join
     order_item oi
     on oi.product_id = psi.product_id
group by s.id

相关问题