Это немного сложно объяснить, но я постараюсь изо всех сил. У меня есть база данных, которая хранит информацию о морском судоходстве и т. Д. У меня есть следующие столбцы для работы. (Есть другие, но у меня нет какой-либо цели для моего исследования). У меня есть Message_ID, Latitude, Longitude, MMSI (Это представляет собой отдельные сигналы судна, поэтому они уникальны для кораблей) Ship_type, Vessel_name.SQL Server 2008 Complex Query & Table Join
Так вот вопрос
- мне нужно только MESSAGE_ID 1-х и 3
- К сожалению MESSAGE_ID 1-х и 3 имеют Ship_type и Vessel_name как Null в соответствующих местах.
- Message_ID 5 имеет как Ship_type, так и Vessel_name.
- Моя область исследования находится в пределах данной широты и долготы
По сути то, что мне нужно сделать, это добавить в Ship_type и Vessel_name к линиям с MESSAGE_ID-х 1 и 3 путем присоединения через номер ММСИ, который является общим mESSAGE_ID 5.
запросы у меня есть до сих пор ..
WHERE (latitude > 55 and latitude < 85 and longitude > 50 and longitude < 141) And (Message_ID = 1 or Message_ID = 3);
Другие запросы
WHERE Message_ID = 5;
Как присоединиться ко всем именам Ship_type и Vessel_name, которые приводят к второму запросу к первому запросу?
Я чувствую, как это следует отметить, что все находится в одной таблице, ОЗАГЛАВЛЕННОЙ dbo.DecodedCSVMEssages_Staging, ЧТО ИМЕЕТ О 100 МЛН ЗАПИСИ ..: S
Вы собираетесь получить умножения на вашей регистрацию, если таблица не является уникальной на '(MMSI, Message_ID). – RBarryYoung
Спасибо за указание @RBarryYoung, я отредактировал код, чтобы рассмотреть только отдельные. – Sonam
Хорошо, я предположил, что (Message_ID, MMSI) был уникальным и в моем ответе. «TOP (1)» обращается к нему в любом случае. –