データベースの設計が不適切なため、データベース内の一連のシリアル番号を取得するのが困難です。
私は以下のようなデータを持っています:-
- XY100001 - XY101000 | User_A ---> 1000 データ
- XY101001 - XY102000 | User_B ---> 1000 データ
- XY102001 - XY102500 | ユーザー_C ---> 500 データ
- XY102501 - XY103000 | User_A ---> 1000 データ
データは以下のようにデータベースに保存されます:-
| | 1 | ユーザー_A | XY100001 | 日時 | | | 2 | ユーザー_A | XY100002 | 日時 | .. | | 1000 | ユーザー_A | XY101000 | 日時 | | | 1001 | ユーザー_B | XY101001 | 日時 | | | 1002 | ユーザー_B | XY101002 | 日時 | .. | | 2000年 | ユーザー_B | XY102000 | 日時 | | | 2001年 | ユーザー_C | XY102001 | 日時 | | | 2002年 | ユーザー_C | XY102002 | 日時 | .. | | 2500 | ユーザー_C | XY102500 | 日時 | | | 2501 | ユーザー_A | XY102501 | 日時 | | | 2502 | ユーザー_A | XY102502 | 日時 | .. | | 3000 | ユーザー_A | XY103000 | 日時 |
DateTime でグループ化した後、最小シリアル番号と最大シリアル番号を選択しようとしましたが、各ユーザーには複数の範囲があるため、正しい範囲を取得できません。
以下のように最小値と最大値を使用している場合の出力例:-
| | ユーザー_A | XY100001 | XY103000 | | | ユーザー_B | XY101001 | XY102000 | | | ユーザー_C | XY102001 | XY102500 |
User_A の出力が間違っていることがわかります。User_A には、(XY100001-XY101000) と (XY102501-XY103000) の 2 つの範囲が必要です。
質問は、どうすればすべての範囲を取り戻すことができますか?
何か案は ?