私は人事部と一緒にプロジェクトに取り組んでいます。[EEMaster] というテーブルがあり、アクティブ/期間中の従業員の記録を保持しています。緩やかに変化するディメンションを使用して、フラット ファイルから更新されます。
年末には、アクティブな従業員の数と雇用された従業員の数、そして年が必要です。
以下は、毎年返す必要があるデータの例です。
| 2010 | 2011 | 2012 | 2013 |
HistoricalHC | 447 | 419 | 420 | 418 |
NumbTermEmp | 57 | 67 | 51 | 42 |
現在、部門ごとのローリング カウントを提供する Excel スプレッドシートにデータを接続しています。[EEMaster] の次の列を使用します。
- ChangeStatus (SCD からの 1/0)
- EmpStatusName (現在の従業員の場合は「アクティブ」、任用従業員の場合は「撤退」)
- HireYear (ピボット テーブルで All に設定)
- Term Year (ピボット テーブルで 2013 に設定)
- PONumb (従業員番号、カウントに使用)
データを入力するテーブルを作成しました。現在の開発はローリング ナンバーであるため、前の年 (カウント) をテーブルに手動でロードします。私がやりたいことは、2014 年 1 月 1 日のカウントを取得し、「アクティブな従業員」、「期間従業員」、および終了したばかりの年の数をテーブルに挿入する SSIS パッケージを開発することです。
アップデート:
2 つのクエリを作成しました。アクティブな従業員の数を提供するもの
SELECT COUNT([PersNo]) AS HistoricalHC
FROM [dbo].[EEMaster]
WHERE [ChangeStatus] = 'Current' AND [EmpStatusName] = 'Active'
それは返す
|HistoricHC|
|418 |
もう 1 つはターム年ごとのターム数を提供します。
SELECT COUNT([PersNo]) AS NumbOfTermEE
FROM [dbo].[EEMaster]
WHERE [ChangeStatus] = 'Current' AND [EmpStatusName] = 'Withdrawn'
AND [TermYear] = '2013'
それは返す
|NumbOfTermEE|
|42 |
[TermYear] を動的にする必要があります。これは毎年1月1日に実行されるためです。前年のターム数を (継続的に) 取得する必要があります。
次に、これらの数値の両方を、データが計算された年とともに新しい行に追加する必要があります。
|Year|HistoricalHC|NumbOfTermEmp|
|2010|447 |57 |
|2011|419 |67 |
|2012|420 |51 |
|2013|418 |42 |