当社には、従業員または請負業者 (リソース) が働いた時間を入力する時間管理システムがあり、そのためのコストが導き出されます。履歴コストの表があります。
CREATE TABLE ResourceTimeTypeCost (
ResourceCode VARCHAR(32),
TimeTypeCode VARCHAR(32),
EffectiveDate DATETIME,
CostRate DECIMAL(12,2)
)
したがって、発効日を示す日付フィールドが 1 つあります。記録があれば
('ResourceA', 'Normal', '2012-04-30', 40.00)
そして、次のレコードを追加します
('ResourceA', 'Normal', '2012-05-04', 50.00)
したがって、4 月 30 日から 5 月 3 日の間に入力された時間はすべて £40.00 になり、4 日の午前 0 時以降はすべて £50.00 になります。これは原則として理解できますが、このロジックを表現するクエリをどのように記述しますか?
私のタイムテーブルが以下のようになっていると仮定します
CREATE TABLE TimeEntered (
ResourceCode VARCHAR(32),
TimeTypeCode VARCHAR(32),
ProjectCode VARCHAR(32),
ActivityCode VARCHAR(32),
TimeEnteredDate DATETIME,
HoursWorked DECIMAL(12,2)
)
次のレコードを TimeEntered テーブルに挿入すると
('ResourceA','Normal','Project1','Management1','2012-04-30',7.5)
('ResourceA','Normal','Project1','Management1','2012-05-01',7.5)
('ResourceA','Normal','Project1','Management1','2012-05-02',7.5)
('ResourceA','Normal','Project1','Management1','2012-05-03',7.5)
('ResourceA','Normal','Project1','Management1','2012-05-04',7.5)
('ResourceA','Normal','Project1','Management1','2012-05-07',7.5)
('ResourceA','Normal','Project1','Management1','2012-05-08',7.5)
リソースごとの総コストを返すクエリを取得したい
上記の場合、「ResourceA」、(4 * 7.5 * 40) + (3 * 7.5 * 50) = 2325.00 になります。
誰でもサンプル SQL クエリを提供できますか? この例が TimeType を使用していないことはわかっています (つまり、常に「通常」です) が、これがどのように処理されるかを確認したいと思います。
データベースの構造を変更できません。よろしくお願いします