不存在执行所需分组和聚合的功能

No function exists to perform desired grouping and aggregation

我 运行 遇到了一个难题,我希望有人能帮助我解决这个问题。我有一个包含以下字段的 table:

SalesPeriod、SalesRep、Contract、MarginPerProduct、ProductSold

我必须将 MarginPerProduct 和 ProductSold 相乘才能得到 'TotalMargin'

这是我正在尝试使用的代码示例:

SELECT                                                                                   
      SalesPeriod
     , SalesRep
     , Contract
     , MarginPerProduct*ProductSold as 'TotalMargin'

FROM
     tblSales

GROUP BY
     SalesPeriod
     , SalesRep
     , Contract

当然,相乘的列是无效的,因为它们不是分组的一部分,而且没有使用聚合函数。

有没有办法在使用非识别聚合时完成这种类型的分组?

感谢您的帮助。

据推测,您想要 sum():

SELECT SalesPeriod, SalesRep, Contract,
       SUM(MarginPerProduct * ProductSold) as TotalMargin
FROM tblSales
GROUP BYSalesPeriod, SalesRep, Contract;

为什么不只是这个

SELECT                                                                                   
      SalesPeriod
     , SalesRep
     , Contract
     , TotalMargin = MarginPerProduct*ProductSold 
FROM
     tblSales

如果您希望 TotalMargin 对每个 SalesPeriod\SalesRep\Contract 求和,则

SELECT                                                                                   
      SalesPeriod
     , SalesRep
     , Contract
     , TotalMargin = sum(MarginPerProduct*ProductSold) 
FROM
     tblSales
GROUP BY
     SalesPeriod
     , SalesRep
     , Contract