0

SQL Server レポート ツール 2008 を使用しており、以下の表を作成しました。

次の結果を生成するデータセットがあります。基本的に、データベース内の料金フィールドが変更されるたびに、テーブルには現在の料金の終了日が与えられ、次に新しい料金の新しい発効日が与えられます。これにより、通常、終了日が空白になります。(例: UCN 1 および UCN 495) 課金が一度も適用されていない場合は、停止日も空白になります。(例: UCN 11)

以下の年関数を計算フィールドとして使用すると、空白のフィールドに対して 1 の結果が得られ、フィルター関数を使用して「1」のみを含め、現在の料金をすべて見つけることができることがわかりました。

=Year(Fields!CEASED_DATE.Value)

ただし、特定の状況下では、この場合、UCN 492 は新しい発効日を取得しないため、空白の終了日はありません。40,000 レコードのデータベースでは、これは 100 回しか発生しません。

私がやりたいことは、データベース内のすべての UCN を現在の料金でリストするか、現在の料金がない場合はフィールドを空白のままにすることです。基本的には履歴を除外したい。

これは可能ですか?

UCN......CEASED_DATE....EFFECTIVE_DATE.....Charge  

1........12 July 2009...11 July 2009.......Rate 3  
1.......................12 July 2009.......Rate 4  

11  

492......12 July 2009...01 January 1900....Rate 4  
492......15 July 2009...12 July 2009.......Rate 5  
492......31 July 2011...15 July 2009.......Rate 2  

495......12 April 2009..04 November 1946...Rate 2  
495.....................12 April 2009......Rate 3
4

1 に答える 1

0

UCNレポート サービスのグループ化された唯一の Tablix で次の関数を使用できますか?

=max(iif(year(Fields!CEASED_DATE.Value)=1, Fields!CHARGE.Value, ""))

または同様のデータセットで?

Select UCN,
   Max(case when ceased_date = '' then charge else '' end) current_charge
From charges
Group by UCN
于 2013-04-01T10:16:35.483 に答える