したがって、次の形式でデータをテーブルにインポートしています(呼び出しはRAWDATAです):
EMPID | STARTDATE | ENDDATE | TOTALHOURS | TOTALWAGES
ABC123 | 01-01-2013 | 01-28-2013 | 160.0 | 1800.00
XYZ987 | 01-01-2013 | 01-31-2013 | 200.0 | 2500.00
そのデータを取得して、別のテーブル (EMPDATA) に次の形式で配置する必要があります。
エンピッド | 日付 | 営業時間 | 賃金 ABC123 | 2013 年 1 月 1 日 | 5.71 | 64.29 ABC123 | 2013 年 1 月 2 日 | 5.71 | 64.29 ABC123 | 2013 年 1 月 3 日 | 5.71 | 64.29 …… | ………… | .... | ..... XYZ987 | 2013 年 1 月 1 日 | 6.45 | 80.66 XYZ987 | 2013 年 1 月 2 日 | 6.45 | 80.66 XYZ987 | 2013 年 1 月 3 日 | 6.45 | 80.66 …… | ………… | .... | .....
私の考えでは、STARTDATE と ENDDATE の間に DATEDIFF を実行して、時間と賃金を分散する日数 (この場合は 28) を計算し、1 日あたりの平均労働時間と賃金を含む行を挿入します。 . これはすべて、RAWDATA テーブルのトリガーで行われます。トリガーで STARTDATE から ENDDATE まで反復する方法がわかりません。
編集: また、インポートされるデータの各行の開始日/終了日が常に同じであるとは限らないことも述べておく必要があります。これを示すために、最初の表の例を更新しました。