私は組織のサポーターのデータをクリーンアップする任務を負っています。いくつかの SQL クエリ コーディングには問題はありませんが、もう少し複雑な問題に遭遇しました (私にとっては!)。
タスクは、サポーターをアクティブまたは失効としてマークすることです。
開始日を確認することでこれを行うことができます。その日から 2 年以内であれば、アクティブとマークし、それを超えるものはクローズとマークすることができます。悲しいことに、これほど簡単なことはありません。サポーターは、組織との関わり方によって、さらにレベルアップする可能性があります。
クエリで実行する必要があるのは、追加のサポーター コードがあるかどうかを確認することです。たとえば、2 つのレベルでアクティブにすることはできず、次のレベルにあるかどうかを確認するクエリが必要です。その場合、上記のルールを満たしているかどうかに関係なく、前のコードを破棄します。彼らは最大5レベルまで上昇することができます。
これが理にかなっていることを願っています。データはこんな感じ。
Member ID | Category | Start Date | End Date
123456 | LEG1 | 01/12/2012 |
654321 | LEG1 | 01/01/2009 |
421124 | LEG1 | 01/05/2011 |
421124 | LEG2 | 02/04/2011 | 31/12/2012
421124 | LEG3 | 02/04/2011 | 31/12/2012
421124 | LEG4 | 31/12/2012 |
567888 | LEG2 | 14/03/2012 |
567888 | LEG3 | 22/08/2012 |
119119 | LEG2 | 01/01/2011 | 31/12/2012
どんなアドバイスもありがたく受け取った。