bugfix> sql > 投稿

SAS Data Integration Studio(SASコードまたはSQLコード)を使用して、指定されたビジネスルールの1つを解決しようとしています。ビジネスルールは次のとおりです。 同じ経費タイプについて申し立てられたスタッフを見つけるため、および30日以内の購入日(たとえば、1人が毎週トナーを購入し、同じものを購入する)(経費タイプ)

この形式のデータがあります:

StaffNo|Date      |Trip    |Desc  |  InvoiceNumber  | ExpenseType  | Amount
----------------------------------------------------------------------------
1      |01JAN2015 |A       |XX    | ZXC             |100           |50
1      |05JAN2015 |A       |XX    | ZXC             |100           |50
1      |02FEB2015 |A       |XX    | ZXC             |100           |50
1      |03APR2015 |B       |YY    | PPP             |90            |1000
1      |02MAY2015 |B       |YY    | PPP             |90            |1000
2      |01OCT2017 |C       |LO    | 123             |55            |777
2      |02JAN2018 |D       |HI    | 456             |66            |888
2      |02MAY2018 |E       |LL    | 789             |44            |11
3      |11MAR2016 |F       |PO    | 99AA            |122           |88.5
3      |13MAR2016 |G       |PO    | 99AA            |122           |88.5
3      |31DEC2016 |H       |PO    | 99AA            |122           |88.5

上記の不整合については申し訳ありませんが、コピーしてメモ帳に貼り付けると、適切に整合されます。

サンプルレコードに基づいて、30日以内に同じExpenseTypeアイテムを購入したスタッフ番号1〜3を見つける必要があります。見つかった場合、このパターンを持つすべてのレコードに対して、「RepeatPurchase」という名前の列を持つ値「Y」のフラグを作成します。

素人の用語では、30日以内に同じExpenseTypeを購入する同じStaffNoを見つけたいし、最初のレコードを2番目または最後のレコードと比較することを示すルールはありません。

日付は、次のレコードの場合、1日の差から10年の差までの範囲である可能性があります。以下の例は単なるサンプルであるため、必ずしも日付パターンの下にあるとは限りません。

私はこれを行う方法を考えることができませんでした。与えられたアドバイス/ガイドは大歓迎です。