EmpID
、、、の3つのフィールドを持つアドレス履歴テーブルがありAddress
ますAddrID
。
新しい住所を追加するたびに、AddrID
その特定の従業員の住所ID()も1ずつ増やします。
EmpID | AddrID | Address
-------------------------------
1 | 1 | 1234 First Ave
1 | 2 | 2145 First Ave
1 | 3 | 1111 First Ave
2 | 1 | 1001 Second St
2 | 2 | 1002 Second St
2 | 3 | 1003 Second St
2 | 4 | 2222 Second St
3 | 1 | 3332 Third Lane
3 | 2 | 3333 Third Lane
4 | 1 | 4444 Fourth Way
各従業員の最新の住所(最大の住所ID)を取得するにはどうすればよいですか?理想的には、私は戻ることができるはずです:
EmpID | AddrID | Address
-------------------------------
1 | 3 | 1111 First Ave
2 | 4 | 2222 Second St
3 | 2 | 3333 Third Lane
4 | 1 | 4444 Fourth Way
これまでのところ、返される結果が多すぎる(つまり、すべての従業員、すべてのAddrID 1、および2つに関連付けられたすべてのアドレス)か、結果が少なすぎる(つまり、AddrID 4を持つすべての従業員-従業員2だけ)。
、、、、、および自己結合を使用してみましたが、役に立ちませんでしDistinct
たGroup By
。Order By
Having
私は何が欠けていますか?