2017-07-11 6 views
0

を使用するにはどうすればSQL和(MAX())関数

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

をやろうとしていますが、それは動作しません。どうやってやるの?

エラーメッセージ:

は、集約またはサブクエリを含む式に集約関数を実行できません。

マイコード:

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

あなたのコードに説明の中の合計(Max(IsNull(sap.CapacityCost、0)))がありません – sepupic

+0

@ sepupic私はそれが私の目的であることを試みました。それは私の目的です – diad

+0

...そして問題そこには、許可されていない別の集約内で集約を使用しています。集計またはサブクエリを含む式に対して集計関数を実行できません。 – sepupic

答えて

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の質問をすると、それはいくつかのサンプルデータとしたい結果セットのイラストを提供するために、常に便利です。それは人々があなたに助けを与えることをはるかに容易にします。ここからわかるように、私は私の答えにいくつかのデータとテーブル構造を含めました。あなたが得ようとしていることを説明するのに十分なだけ、実際のデータやまったく同じテーブル構造を私たちに与える必要はありません。