このスクリプトで自分のやりたいことを実行するには、少し助けが必要です。
SELECT KM.initials,
TPL.debprice,
TMP.pricegroup,
TMP.date
FROM klientmedarbejder KM
INNER JOIN timeprismedarbejderprisgruppe TMP
ON KM.employeeno = TMP.employeeno
INNER JOIN timeprisprisgruppelinie TPL
ON TMP.pricegroup = TPL.pricegroup
GROUP BY KM.initials,
TMP.date,
TPL.debprice,
TMP.pricegroup,
TPL.date
HAVING ( Max(TMP.dato) = TPL.date )
必要なのは、最新 (最大) の日付の debPrice です。従業員はキャリアを積んでいきますが、ときどき価格が引き上げられます。価格は、一連の価格リストから選択されます。
KlientMedarbejder
従業員テーブルです。TimeprisMedarbejderPrisgruppe
彼のレコードが新しい価格にアップグレードされる日付のリストです。TimeprisPrisgruppeLinie
あなたが持つことができる価格のリストです。
従業員ごとに 2 つのオプションまで解決策があります。したがって:
emp A - 300 - 9 - 1900-01-01
emp A - 500 - 4 - 2012-01-01
emp B - 400 - 6 - 1900-01-01
emp B - 800 - 8 - 2012-04-01
したがって、彼が入社したときはいつでも最初のレコードがデフォルトです。2012年、彼は最終的により良い値札を付けるのに十分になりました. ここで、各従業員のアップグレード リストの最新の日付を含む回答が必要です。したがって、従業員 A は私に 500 を与える必要があり、従業員 B は私に 800 を与える必要があります。一部の従業員は、時間の経過とともに最大 8 回のアップグレードを行っていますが、私は最新のものだけを気にしています。
このデータを取得しているクライアントは、SQL Server 2000 を実行しています。