私は大規模な顧客データベースを持っており、顧客テーブルには人と組織との関係があります。人々は複数の組織に属している可能性があります(これにより、組織内での分割が可能になります)。複数の組織を持つ人々は、デフォルトの組織を持っている必要があります。これは通常、どこisDefault = T
で決定されますが、フロントエンドアプリケーションは、isDefault = F
を選択することでデフォルトのアプリケーションを計算することもできますMIN(RowID)
。
したがって、以下の表でPersonId
3
は、デフォルトOrgID
が11
(IsDefault = T)であることがわかります。ただし、PersonID12のデフォルトを見つけるためのクエリを理解する必要があります。すなわち
Select orgId as default from myTable
where personID = 12
and isDefault = 'T'
0行が返された場合は、次のようなクエリを実行します。
Select orgId as default from myTable
where personID = 12
and
RowId in (select Min(rowId)
from myTable
where PersonId = 12)
RowID | PersonID | OrgId | isDefault
1 | 12 | 14 | F
2 | 12 | 17 | F
3 | 3 | 11 | T
4 | 3 | 14 | F