2011-10-24 13 views
4

これは言葉で説明するのが少し難しいです...私はマトリックス内のグループ化された別個の値の合計を計算しようとしています。のは、私はSQLクエリによって返さ以下のデータを持っているとしましょう:グループ化された別個の値の合計

------------------------------------------------ 
| Group | ParentID | ChildID | ParentProdCount | 
|  A |  1 |  1 |    2 | 
|  A |  1 |  2 |    2 | 
|  A |  1 |  3 |    2 | 
|  A |  1 |  4 |    2 | 
|  A |  2 |  5 |    3 | 
|  A |  2 |  6 |    3 | 
|  A |  2 |  7 |    3 | 
|  A |  2 |  8 |    3 | 
|  B |  3 |  9 |    1 | 
|  B |  3 |  10 |    1 | 
|  B |  3 |  11 |    1 | 
------------------------------------------------ 

あり、クエリ内のいくつかの他のデータだが、それは無関係です。 ParentProdCountはParentIDに固有です。

私は、ParentProdCount(「グループ」によってグループ化されている)の合計を計算しようとしているMSレポートデザイナに行列があります。ちょうど式を追加すると

=Sum(Fields!ParentProdCount.Value) 

私はグループAの結果が20、グループBの結果は3となり、正しくありません。正しい値は、グループAの場合は5、グループBの場合は1にする必要があります。ChildIDが含まれていない場合は発生しませんが、同じマトリックス内の他の子固有のデータを使用する必要があります。

FIRST()とSUM()集計関数をネストしようとしましたが、スコープが定義されていてもネストされた集計関数を持つことはできません。

別のSQLクエリを作成せずに、グループ化された個別の合計を計算する方法があることは間違いありません。誰でもそれをどうやって考えているのですか?

答えて

8

[OK]を私はこれが(ROW_NUMBERを追加することによって、整理だが)私のSQLクエリ機能:

SELECT Group, ParentID, ROW_NUMBER() OVER (PARTITION BY ParentID ORDER BY ChildID ASC) AS Position, ChildID, ParentProdCount FROM Table 

、その後、私は

=SUM(IIF(Position = 1, ParentProdCount.Value, 0)) 
+1

この問題を抱えている人は、10進値の合計を試してみました。「First、Last、Previous、Count、およびCountDistinct以外の集計関数は、単一のデータ型のデータのみ集計できます。私は、0をSum関数のNothingに置き換えることによって動作させました。 – Rono

0

でSSRS SUM関数を置き換えるのParentID上でグループ化を入れてそして、そのグループの上に合計を使用

例:

if group over ParentID = "ParentIDGroup" 
then 
    column sum of ParentPrdCount = SUM(Fields!ParentProdCount.Value,"ParentIDGroup") 
関連する問題