2017-09-07 7 views
0

私のデータセットに2つの日付フィールドがあります。 OperativeAとOperativeBのラベルが付けられ、ジョブが割り当てられた人に基づいて作成されます。 ユーザーはいずれかのフィールドに日付を追加することができます。したがって、日付フィールドのうちの1つだけが使用され、レポートを実行すると、使用されていない日付フィールドは空白になります。レポートビルダーで2つの日付フィールドを結合するためのIIfステートメント

計算フィールドを書き込もうとしています。両方の日付フィールドが空白の場合は、割り当てられていない操作を「割り当て解除」して表示されます。 OperativeAまたはOperativeB。

これまでのところ、私は2計算fiedsを作成しました:

= IIF(!!IsNothing(フィールズOperativeA.Value)、 "未使用"、フィールドOperativeA.Value)

= IIF(IsNothing(フィールズ!OperativeB.Value)、 "Unassigned"、Fields!OperativeB.Value)

これらの機能はありますが、まだ2つのフィールドがあるため、

私はstrugginling 2ですので、私は「未割り当て」またはいずれかの作業者を示すフィールドが1つしかないため、これらを組み合わせてください。

1フィールドを達成するのに役立つアドバイスがありますか?可能であれば

感謝

答えて

0

は個人的に私は(私はここでは、SQL Serverを仮定している)サーバー上でこれを行うだろう。あなたが本当にSSRSでそれをしなければならないなら、あなたは

=SWITCH (
     Len(Fields!OperativeA.Value) >0 , Fields!OperativeA.Value, 
     Len(Fields!OperativeB.Value) >0 , Fields!OperativeB.Value, 
     True, "Unassigned" 
     ) 

あなたは同じ結果を得るために、ネストされたIIFステートメントを使用することができますが、スイッチのようなものが必要になりますように簡単

SELECT 
    COALESCE(OperativeA, OperativeB, 'Unassigned') AS myCalcField 
    , myOtherFields 
    FROM myTable 

として、それは次のようになります通常はよりクリーンで読みやすい。 SWITCHステートメントはTrueを返す最初の式で停止します。 Aが何かを含んでいるかどうかをチェックします。Aを返します。Bをチェックしない場合は最後にすべてが失敗した場合、最終式Trueは明らかにtrueを返します。最後の値が返されます(最後の式/ else ')。

+0

私が必要とするものを正確に教えてくれてありがとうございました。将来のレポートにも役立ちます。 – Freddie

関連する問題