我在一个名为的表中有以下数据:dbo.DecodedCSVMessages_Staging
以下是数据示例:
MMSI Message_ID Time Ship_Type Vessel_Name Latitude Longitude
2102930 3 2012-06-01 NULL NULL 56.528003 85.233443
2102930 5 2012-07-01 70 RIO_CUBAL NULL NULL
2109300 1 2012-08-01 NULL NULL 57.43234 131.123343
2109300 1 2012-09-01 NULL NULL 62.432345 121.123343
2109300 1 2012-09-02 NULL NULL 65.432345 140.123343
2109300 5 2012-08-01 70 RIO_CUBAL NULL NULL
2225555 1 2012-08-01 NULL NULL 66.432345 143.123343
2225555 1 2012-09-01 NULL NULL 25.432345 145.123343
2225555 5 2012-08-01 70 RIO_II NULL NULL
我需要的是如下:
- MMSI 编号是代表船舶的唯一编号。一艘船以独特的消息类型发送不同的信息。我只对 Message_ID 1 和 3 感兴趣,因为它们具有纬度和纵向信息。MMSI 将在此数据库中重新出现(如上数据所示)
- 问题是,我需要有关这艘船的信息,不幸的是,该信息仅在 Message_ID 5 中可用。例如 Vessel_name 和 Ship_type。
我只需要在以下经纬度范围内的船舶
Ship_Type 可能会改变!在这种情况下,它必须反映较晚的日期
其中纬度 > 55 和纬度 <85 和经度 > 50 和经度 < 141;
查询数据的结果将产生以下结果(其中我将保存为 CSV 格式,因为我正在使用此信息在 ArcGIS 中构建点要素)
MMSI Message_ID Time Ship_Type Vessel_Name Latitude Longitude
2102930 3 2012-06-01 70 RIO_CUBAL 56.528003 85.233443
2109300 1 2012-08-01 70 RIO_CUBAL 57.43234 131.123343
2109300 1 2012-09-01 70 RIO_CUBAL 62.432345 121.123343
2109300 1 2012-09-02 70 RIO_CUBAL 65.432345 140.123343
2225555 1 2012-08-01 70 RIO_II 66.432345 143.123343
所以所有 Message_ID 5 都消失了
倒数第二行消失了(因为纬度只有 25.432345)
信息 Ship_Type 和 Vessel_Name 已通过使用 MMSI 链接的方式添加到 Message_ID 1 和 3。
约束:
- 无法创建新表(无权访问)
- 该数据库中有超过 10 亿行数据(尽管只有大约 430 万行符合经纬度限制)
查询可能是什么???谢谢!