スキーマとサンプル データ
以下は、テーブル レイアウトを示すサンプル データです。この例では、特定の ITEM と SERIAL のトランザクションのみを表示しています。ただし、本番環境では他のアイテム/シリアルが存在するため、実行されるすべての結合はこれら 2 つのフィールドで行う必要があります。
transid Item qty Transdate Type Serial IssuedTo
======= =========================== === ======================= ======= ======= ========
423371 SUNNENBOREGAGE1.18-2.0-3 1 2012-10-22 08:49:18.000 ISSRT G-02145 742
422415 SUNNENBOREGAGE1.18-2.0-3 -1 2012-10-17 18:42:08.000 RETN G-02145 139
422082 SUNNENBOREGAGE1.18-2.0-3 1 2012-10-17 13:21:38.000 REISS G-02145 139
421518 SUNNENBOREGAGE1.18-2.0-3 1 2012-10-15 13:37:08.000 ISSRT G-02145 709
421459 SUNNENBOREGAGE1.18-2.0-3 -1 2012-10-15 09:37:41.000 RETN G-02145 640
421426 SUNNENBOREGAGE1.18-2.0-3 1 2012-10-15 08:02:19.000 ISSRT G-02145 640
420100 SUNNENBOREGAGE1.18-2.0-3 -1 2012-10-10 06:23:34.000 RETN G-02145 742
420097 SUNNENBOREGAGE1.18-2.0-3 1 2012-10-10 06:22:21.000 ISSRT G-02145 742
すべての返品は、RETN または REISS のいずれかのタイプでマークされます。すべての問題は、ISSRT または REISS のいずれかのタイプによってマークされます。再発行 (REISS) は、返品と発行の両方です。ISSUEDTO フィールドは、REISS または ISSRT トランザクションのアイテムを誰が受け取ったかを示します。
望ましい結果
要するに、日付範囲 (四半期) 内のすべての返品を検索し、一致する発行トランザクション (いつ発行されたかに関係なく) を見つけて、発行された従業員とその期間 (日数) を特定できるようにする必要があります。その従業員はその特定のアイテム/シリアルを持っていました。
私の最終的な結果セットには、次のような列があります。
ITEM SERIAL EMPLOYEE ISSUETRANSID ISSUEDATE RETURNTRANSID RETURNDATE DAYSOUT
REISS は技術的には 1 つの行に 2 つのトランザクションがあり、各 ISSRT (または REISS) トランザクションが各 RETN (または REISS) トランザクションに対して 1 回だけ使用されるようにするため、これを行う方法について頭を悩ませているようには見えません。これも FIFO/LIFO の問題のように聞こえますが、ここでロジックを適用できないようです (これは私自身の欠点かもしれません)。
どんな助けや指針も大歓迎です!ありがとうございます=)