之前我躺在出了問題,這裏是我的關於數據的信息:SQL表創建從連接數據的
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
我需要創建一個新表。這下面是什麼,我需要在表格中:
我感興趣的所有數據,但我只需要與Message_ID的是1或3 **問題是,與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
(這是所有標記NULL爲的Message_ID的等於5)
MMSI就是在這種情況下的主鍵。 Message_ID的1,3和5將全部具有代表給定船舶的MMSI號碼。這些MMSI是重複發生的,因爲每艘船發出多個類型1,3和5的消息。所以說我們有一個MMSI 210293000,這個號碼將與幾個Message_ID的不同類型一起。所以我需要做的是抓取1和3的所有Message_ID,並將Message_ID中的信息附加到1和3的5。所以在那裏,列不再是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
謝謝!
作爲一個,你的問題很難閱讀。我改進了它,但你可以進一步擦亮它。那麼我們可能會更感興趣,如果你能夠嘗試某些東西,並且出於某種原因失敗(請說明原因)。 – mnagel
對於給定的船舶,你有多行,'Message_ID'是'1'或'3'?你也有多行,'Message_ID'也是'5'的那些船呢?你打算如何連接它們?含義:例如,哪個3值行要連接到哪個5值行? –
就是這樣,一艘船將發出許多消息1,3和5,但每條消息都包含特定信息。信息1和信息3有經緯度,但沒有船隻名稱或類型等。它們只在信息5中發出信息。但我也需要這些信息。所以我需要創建一個只有消息1和3(在我的給定經緯度內)的新表,但是包含消息5的信息。 (因爲它不包含在1和3中) – dpalm