同じテーブル内の 2 つの連続した行を比較する必要があります。2 行目のデータが欠落している場合は、1 行目のデータで更新する必要があります。
例:
Row EmpID DATE PosID EmpStatus EmpDept EmpVP
----------------------------------------------------------------------
1 21 2010-12-31 NULL TC NULL 40
2 21 2010-01-25 90156840101 NULL 407 NULL
3 21 2003-11-25 NULL AC NULL NULL
最初の反復: 行 1 の EmpStatus = TC であるため、以下に示すように、行 2 の EmpStatus を TC (NULL であるため) に更新し、行 2 の EmpVP を 40 に更新します。
Row EmpID DATE PosID EmpStatus EmpDept EmpVP
----------------------------------------------------------------------
1 21 2010-12-31 NULL TC NULL 40
2 21 2010-01-25 90156840101 TC 407 40
3 21 2003-11-25 NULL AC NULL NULL
2 回目の反復: Row3 の PositionID が NULL であるため、Row3 を Row2 の PositionID で更新したいと考えています。Row2 の EmpStatus = TC になったので、row2 と row3 のデータを比較したいと思います。Row3 には新しい値があるので、新しい値「AC」を保持したいと思います。しかし同時に、Row3 = 40 の EmpDept の値が NULL であるため、更新したいと考えています。望ましい結果を以下に示します。
Row EmpID DATE PosID EmpStatus EmpDept EmpVP
----------------------------------------------------------------------
1 21 2010-12-31 NULL TC NULL 40
2 21 2010-01-25 90156840101 TC 407 40
3 21 2003-11-25 90156840101 AC 407 40
履歴データの読み込みに取り組んでおり、日付に関してさかのぼってレコードを作成する必要があります。
だれかこのコードの書き方を教えてください。このテーブルには多くの従業員がいるため、できればカーソルを使用せずにこれらの更新を実行できるかどうかを知りたいです。
どうもありがとう!