こんにちは私は興味深い問題を抱えています。私は次のように従業員テーブルを持っています
CREATE TABLE EMPLOYEE(
EMPLOYEE_ID INTEGER,
SALARY DECIMAL(18,2),
PAY_PERIOD DATE)
現在、テーブルには従業員がおり、その一部は毎月、一部は毎週、一部は隔週、一部は毎日支払われます。必要なのは、3つの連続する給与期間の給与が等しい場合に「Y」を示すインジケーターを見つけることです。次の例を見てみましょう。
Employee Pay_Period Salary
1 01/01/2012 $500
1 08/01/2012 $200
1 15/01/2012 $200
1 22/01/2012 $200
1 29/01/2012 $700
この場合、3つの連続した給与期間の給与は$ 200であるため、インジケーターは「はい」になります。
支払い期間の数が一定ではないため、必要な残りの結合の数が事前にわからないため、このコードの記述方法がわかりません。これをTeradataで記述しているため、RECURSIVE関数を使用してみましたが、困惑しました。 。これをどのように進めるかについての一般的なアイデアはありますか?ストアドプロシージャを作成したり、PL/SQLロジックを使用したりしたくないです。