SSRSレポートプロジェクトでは、過去12ヶ月間の施設の検査結果の傾向に関するデータが必要です。 'InspectionDate'などの固定フィールドでグループ化できる標準のBIレポートアプリケーションとは異なり、すべての検査の結果は 'StartDate'と 'EndDate'の間で有効です。新しい検査が実行されると、その施設の以前のレコードは終了日を取得し、新しい開始日と終了日がNULLの新しいレコードが作成されます。毎月の状況を集約したデータを報告する必要があります。EventDateではなくStartDateとEndDateのみを指定した月の日付数に関するレポート
次のようにだから、現在、私はこれのためのデータを生成するために取っているアプローチがある: -
1)レポートサーバーへのライブデータを複製し、レコードだった数ヶ月フラグにP11に12個の新しいフィールドP0を追加過去12ヶ月間有効です。
2)を実行し、次の形式で12個の更新クエリ...
UPDATE tblDistributionReports
SET P1 = 1
WHERE DATEDIFF(MONTH,GETDATE(),StartDate) <= -1
AND (ENDDATE IS NULL OR DATEDIFF(MONTH,GETDATE(),EndDate) >= -1)
Etc .....
3)UNPIVOT毎月のために私に点検を1行を与えるために、テーブルが
4有効であった)の再 - PIVOT結果は集計されたカウントと毎月の平均のスコアを与えるために
だから - これは少しclunkyですが動作します。 これを行うためのより優雅で効率的な方法はありますか?
感謝
上記を調べてCTEを読み上げた後、この例は完全に機能し、自分の試みよりもはるかにプロフェッショナルに見えます。ありがとう –