如何使用SQL Sum(Max())函数

时间:2017-07-11 12:38:20

标签: sql-server

我正在尝试

Select Sum(Max(IsNull(c.CapacityCost, 0)))

但它不起作用。我怎么能这样做?

错误讯息:

  

无法对包含聚合或子查询的表达式执行聚合函数。

我的代码:

Select 
Max(IsNull(c.CapacityCost, 0)) Company c

1 个答案:

答案 0 :(得分:0)

要获得您想要实现的内容(您认为),您需要使用子查询。有点像:

declare @company table(
CapacityCost int,
CompanyID int,
CompanyName varchar(20),
Country char(2))

INSERT INTO @company VALUES (20, 1, 'dduck inc', 'us')
INSERT INTO @company VALUES (25, 2, 'dduck plc', 'uk')
INSERT INTO @company VALUES (10, 3, 'mmouse inc', 'us')
INSERT INTO @company VALUES (35, 4, 'mmouse plc', 'uk')
INSERT INTO @company VALUES (15, 5, 'rrabbit inc', 'us')
INSERT INTO @company VALUES (30, 6, 'rrabbit plc', 'uk')

SELECT SUM(MaxCC) 
FROM 
(SELECT MAX(CapacityCost) AS MaxCC, Country FROM @company GROUP BY Country) m

在此处询问SQL问题时,提供一些示例数据以及所需结果集的说明始终是有用的。这使人们更容易给你帮助。正如你在这里看到的,我在答案中包含了一些数据和表格结构。您不需要向我们提供真实数据或完全相同的表结构,只需足以说明您想要获得的内容。