0

レコードは「renewal_required」というステータスを持つことができます。このステータスに入り、申請者が実際に更新すると、コピーが生成され、ステータスが「処理中」になります (ただし、他の理由で申請のステータスが「処理中」になることもあります)。

ここで、renewal_required ステータスを持つすべてのレコードを取得する必要がありますが、特定の申請者のステータスが「処理中」のコピーが存在する場合は、その 1 つだけを表示します...キーは、コピーされたレコードと同じ、applicant_id です。

| id | status               | applicant_id |
| 1  |    renewal_required  |       2      |
| 2  |    in_process        |       3      |  
| 3  |    renewal_required  |       4      |
| 4  |    in_process        |       4      |

上記の例では、ID 1 と 4 のレコードが返されます...

これはできますか?提案をありがとうございます(デザインがばかげているように見えても、DB-再設計は除外されます-今は何もできません)

ソリューションはdjango用である必要がありますが、SQLソリューションが提案されている場合は、喜んでそれを受け入れ、直接適応/実行します

4

2 に答える 2

0
select a.applicant_id,COALESCE(b.status,a.status) status from 
(select applicant_id,status from yourtable where status='renewal_required') a
left join 
(select applicant_id,status from yourtable where status='in_process')  b 
on a.applicant_id = b.applicant_id;

デモをチェック

于 2013-07-03T04:56:20.467 に答える