我的数据库中有 4 个表,其中包含以下字段:
- 全球定位系统(gps_id,序列号)
- 客户(client_id,名称)
- 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”是否不为空。因此,在此示例中,应仅显示来自 gps 且 id=112 和 id=113 的序列号。
做这个的最好方式是什么?所有这些都应该在存储过程上创建,所以正如我之前所说,client_id 是一个给定的参数(@client)。
我正在使用 SQL Server 2008。
TIA