私は SQL の使用に非常に慣れていないため、私の質問に答えていると思われる以前の投稿を見つけることができませんでした。データベース内のすべての顧客と、その提出に関連するすべての行/列のデータについて、承認された最新の提出を提供するステートメントが必要です。各送信には一意の ID 番号が割り当てられ、ASMT_ID という列に表示されます。固有の顧客 ID 番号は、PRTPT_ID という列です。
したがって、データベース T_FINANCIAL_ITEM 内の各 PRTPT_ID について、各顧客の MAX ASMT_ID を見つけて、各 PRTPT_ID に関連付けられたデータのすべての列と行を表示したいと考えていますが、STTS_NAME が「承認済み」と等しい場合のみです。
私の簡単な言葉で私がやろうとしていること:
select * from T_FINANCIAL_ITEM
For each PRTPT_ID SELECT MAX ASMT_ID
WHERE STTS_NAME = 'Approved'
GROUP by PRTPT_ID
* UPDATE * asmt_id を使用するのではなく、同じテーブルの FYE_DT と SUBM_TYPE の他の 2 つのフィールドを分析する必要があります。
基準は次のとおりです。
- stts_name 'Approved' を持つ最新の FYE_DT (つまり、2010 年より前の 2011 年)。
- 最新の fye_dt では、監査された subm_type
- 最新の fye_dt で、それらが監査されていない subm_type でない場合、監査されていない subm_type
- 基準を満たす送信に関連付けられたデータのすべての行を取得します
例えば:
PRTPT_ID ASMT_ID FYE_DT SUBM_TYPE_NAME
8493000000 18016 30-JUN-09 12.00.00.000000000 AM Unaudited/A-133
8493000000 19574 30-JUN-09 12.00.00.000000000 AM Audited/A-133
8493000000 28039 30-JUN-10 12.00.00.000000000 AM Unaudited/A-133
8493000000 33620 30-JUN-10 12.00.00.000000000 AM Audited/A-133
9481000000 38049 31-DEC-10 12.00.00.000000000 AM Unaudited/Non-A133
9481000000 58020 31-DEC-09 12.00.00.000000000 AM Audited/Non-A-133
9481000000 48139 31-DEC-11 12.00.00.000000000 AM Unaudited/Non-A-133
結果:
PRTPT_ID ASMT_ID FYE_DT SUBM_TYPE_NAME
8493000000 33620 30-JUN-10 12.00.00.000000000 AM Audited/A-133
9481000000 48139 31-DEC-11 12.00.00.000000000 AM Unaudited/Non-A-133
注: これらの結果には、複数のデータ行が関連付けられている場合があります。すべてのデータ行が必要です。