Group By 的困难

Difficulty with Group By

我很难理解在这种情况下我应该做什么:

当 运行 时,查询显示商品编号、订单数量、订单日期和记录订单的销售员。

SELECT t1.item_num,
       t2.qty_ordered,
       t2.order_date,
       t3.slsperson

FROM   t1
JOIN   t2
  ON   t1.item = t2.item
JOIN   t3
  ON   t2.order_num = t3.order_num

但是,有多个相同商品编号被退回,每个商品的订购数量不同。我想将相似的商品编号分组以获得该商品的总订购数量。

我真的不能按 item_num 分组,因为 SELECT 中的其他任何东西都没有聚合函数,它们不应该有聚合函数。

如果其余列没有聚合函数,我该如何对项目编号进行分组?

不确定我是否理解正确,但我认为这可能就是您想要的。您可以按除聚合之外的所有列进行分组。

SELECT t1.item_num,
       sum(t2.qty_ordered),
       t2.order_date,
       t3.slsperson
FROM   
  t1
  JOIN   t2
    ON   t1.item = t2.item
  JOIN   t3
    ON   t2.order_num = t3.order_num
GROUP BY t1.item_num, t2.order_date, t3.slsperson

您可以尝试这样的操作:

SELECT * FROM (SELECT t1.item_num,
   t2.qty_ordered,
   t2.order_date,
   t3.slsperson FROM t1 JOIN   t2 ON   t1.item = t2.item JOIN t3 ON t2.order_num = t3.order_num ) AS table GROUP BY table.item_num

希望对你有用。