2016-04-07 11 views
0

SSRSでは、以下の例のようにグループ構造を作成しようとしています。問題は、最後の列 "Sales(monthly)"です。月単位でグループ化された列グループで、の後にはより詳細な列 "Day"と "Sales(daily)"が続きます。この列を「月」と「日」列の間の2番目の列にすることは問題ありません。SSRSグループ、集約グループ詳細説明の後に

「デイ」と「セールス(毎日)」ですでに「詳細レベル」になってから、さらに別の集約グループを作成することはできません。また、グループプロパティを設定した場合、4列目のグループを月にグループ化すると、「日」と「売上(日次)」も1か月に1行しか集計されません。

これを解決する方法は誰か分かりますか?それともSSRSではこれができないのですか?

Month Day Sales(daily) Sales(monthly) 
Feb 1  100   615 
     2  150 
     3  130  
     4  125  
     5  110  
March 1  100   685 
     2  150  
     3  200  
     4  125  
     5  110  
April 1  100   560 
     2  150  
     3  75 
     4  125  
     5  110  

感謝 マイク

答えて

1

SSRSでこれを行うには、ネイティブな方法はありません。

あなたは月の毎日の売上を取得し、合計を取得するために、カスタム関数(SumLookup)を使用するLookupSet使用が必要になります。

次に、あなたが唯一の1日目

=IIF(Fields!DAY.VALUE <> 1, NOTHING, 
Code.SumLookup(LookupSet(Fields!MONTH.Value, Fields!MONTH.Value, Fields!SALES.Value, "Dataset1"))) 

機能コードの上に表示されるようにIIFを使用する必要があります。

Function SumLookup(ByVal items As Object()) As Decimal 

If items Is Nothing Then Return Nothing 

Dim suma As Decimal = New Decimal() 
Dim ct as Integer = New Integer() 

suma = 0 
ct = 0 

For Each item As Object In items 

    suma += Convert.ToDecimal(item) 
    ct += 1 

Next 

If (ct = 0) Then return 0 else return suma 

End Function 

SSRS

使用LookupSet指定されたデータセットから値のセットを取得するここで、1対多の関係があります。 の例では、テーブル内の顧客識別子の場合、LookupSet を使用して、データ領域にバインドされていない データセットからその顧客のすべての関連電話番号を取得できます。

+0

ハノーファーフィスト、ありがとうございます。 SSASキューブから値を計算することは問題ではないはずです。それをグループ化された(マージされた)行に表示する。これは、グループ化されていない行を受け入れ(そして境界線を持たないことでこの事実を隠そうとする)、最初の行にのみ値を入れる方法です。 Mike – Mike

+0

IIFステートメント( 'IIF(Fields!DAY.VALUE <> 1、NOTHING、...')は、各月の1日目にのみ値を表示する必要があります。 –

関連する問題