时间:2016-07-01 15:28:01

标签: sql tsql reporting-services ssms

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

运行时,查询会显示项目编号,订单数量,订单日期以及记录订单的销售人员。

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中没有其他内容具有聚合函数,并且它们不应该有一个。

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

2 个答案:

答案 0 :(得分:2)

我不确定我是否理解正确,但我认为这可能是你所追求的。您可以按聚合以外的所有列进行分组。

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

答案 1 :(得分:1)

您可以尝试这样的事情:

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
希望它适合你。