在我提出问题之前,这里是关于我的数据的信息:
Table Name: dbo.DecodedCSVMessages_Staging
Columns: MMSI, Message_ID, Time, Vessel_Name, Ship_Type, IMO, Dimension_to_Bow, Dimension_to_stern, Dimension_to_port, Dimension_to_starboard, Draught, Longitude, Latitude
我需要创建一个新表。以下是我在表格中需要的内容:
我对所有这些数据感兴趣,但我只需要 1 或 3 的 Message_ID。**问题是,Message_ID 的 1 和 3 **缺少以下内容:(仅适用于 Message_ID 的 5。)
Vessel_Name, Ship_Type, IMO,
Dimension_to_Bow,
Dimension_to_stern,
Dimension_to_port,
Dimension_to_starboard,
Draught
对于 Message_ID 的 1 和 3,这些列被标记为 NULL。他们所拥有的只有
Longitude,
Latitude,
Time,
MMSI
(对于Message_ID 等于 5,它们都标记为 NULL)
MMSI 是此实例中的主键。Message_ID 的 1、3 和 5 都将具有代表给定船舶的 MMSI 编号。虽然这些 MMSI 会再次出现,因为每艘船都会发出多个类型 1、3 和 5 的消息。所以假设我们有一个 MMSI 210293000,这个数字将与几个不同类型的 Message_ID 一起出现。所以我需要做的是获取所有 1 和 3 的 Message_ID,并将来自 5 的 Message_ID 的信息附加到 1 和 3。因此,列不再为 NULL。
最后但并非最不重要的一点是,我必须只选择 Message_ID 1 和 3 属于以下内容:
Where Latitude > 55 and Latitude <85 and Longitude > 50 and Longitude < 141;
几列的外观示例:
MMSI/ Message_ID /Time/Ship_type/Vessel_Name/Latitude/Longitude
21029300, 3, 2012-06-01, NULL, NULL, 56.528003, 85.233443
21029300, 5, 2012-07-01, 70, RIO_CUBAL, NULL, NULL
2109300, 1, 2012-08-01, NULL, NULL, 57.432345, 131.123343
2109300, 1, 2012-09-01, NULL, NULL, 62.432345, 121.123343
2109300, 1, 2012-09-02, NULL, NULL, 65.432345, 140.123343
21029300, 5, 2012-08-01, 70, RIO_CUBAL, NULL, NULL
根据这些数据,最终结果如下:
21029300, 3, 2012-06-01, 70, RIO_CUBAL, 56.528003, 85.233443
2109300, 1, 2012-08-01, 70, RIO_CUBAL, 57.432345, 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
谢谢!