0

何百万ものトランザクションを含むテーブルがあります。現在支払われている最高額を見つける必要があります。「現在」は、最後にキャンセルされたトランザクションの後に発生するものとして定義されます。表は次のとおりです。

Id (guid)    ServiceId   CreatedDate               AmountPaid    InsurerId   IsCanceled
76E9A3...    19          2013-08-30 12:34:01.580   56.00         96          0
C3F325...    19          2013-08-30 12:34:02.069   14.95         110         0
96E9A3...    19          2013-08-30 12:32:01.540   109.00        95          1
C3BC25...    19          2013-08-30 12:32:02.007   15.95         108         1
85E9A3...    19          2013-08-30 12:30:01.701   101.00        95          0
A3F325...    19          2013-08-30 12:30:02.069   13.95         108         0

ご覧のとおり、同じサービス ID に対して複数のトランザクションがあります。ここで取得する必要があるのは $56 のトランザクションです。これは、同じ ServiceID のトランザクションが最後にキャンセルされた後、その ServiceId の最高額であるためです。

私が行った場合:

 ORDER BY CreatedDate DESC, AmountPaid DESC

最初の行は 14.95$ のトランザクションになります...

私が行った場合:

ORDER BY AmountPaid DESC, CreatedDate DESC

最初の行は 101$ の取引です

より詳しい情報:

サービス取引がキャンセルされると、すべての取引が無効になります。有効なトランザクションは、キャンセルされたトランザクションの後に作成されたトランザクションのみです。

4

2 に答える 2