次のフィールドを持つ4つのテーブルがデータベースにあります。
- gps(gps_id、serial_number)
- クライアント(client_id、name)
- client_gps(client_id、gps_id)
- person_gps(gps_id、date1、date2)
選択したクライアントからのgpsデバイスのすべてのシリアル番号を表示する必要があります。「person_gps」テーブルには、「gps_id」レコードを繰り返すことができます。
このような、
gps_id++++date1++++++++date2
===================================
110 ----10/05/99----05/05/05
110 ----03/02/06----NULL
112 ----03/02/04----04/02/04
112 ----05/09/04----06/08/08
113 ----09/09/09----10/03/10
そして、各gps_idの最後のレコードの「date2」がnullでないことを確認する必要があります。したがって、この例では、id=112およびid=113のgpsからのserial_numberのみを表示する必要があります。
これを行うための最良の方法は何ですか?これらはすべてストアドプロシージャで作成する必要があるため、前に述べたように、client_idは指定されたパラメーター(@client)です。
SQLServer2008を使用しています。
TIA