Я объединяю 3 таблицы с общим столбцом «Load-Id» таблицы OD. ОЙ. и MD. MD имеет EDI-файл, который при передаче электронного файла изменяется на другое имя, поэтому мне нужно отображать только данные, возвращенные из последнего обновленного имени файла.
Я пробовал различные группы и заказы, а затем прочитал, что могу создать новый столбец, соединяющий данные с последним обновленным именем файла, используя дату соединения и Макс, но продолжаю сталкиваться с ошибками синтаксиса
SELECT TOP(100)PERCENT
OD. *
OH.[LOAD_ID] AS [OHLOADID],
OH.[CARRIER],
OH.[CLIENT_REF],
MD.[LOAD_ID] AS [MDLOADID],
MD.[MR_FILE] AS [POFILE]
JOIN (SELECT MR_FILE, MAX(MR_DATE) AS [MDTRANDATE]
FROM dbo.mates_det MD
GROUP BY MR_FILE) MRD ON MD.MR_DATE = MRD.MR_DATE
FROM dbo.out_det OD
LEFT OUTER JOIN DBO.out_head OH ON OH.[LOAD_ID] = OD.[LOAD_ID]
LEFT OUTER JOIN DBO.mates_det ON MD.[LOAD_ID] = OD.[LOAD_ID]
GROUP BY OD.PALLET_ID, OD.SEQ_NO
ORDER BY OD.PALLET_ID, OD.SEQ_NO
Возврат 1 строки на идентификатор паллета и последовательность, и теперь все данные дублируются, если существует более одного имени файла MRfile.
Имя начинается с PO, а затем номер места 244, а затем номер почтового файла, который содержит электронные данные. Другими словами
PO2440001.000.zip
PO2440002.000.zip
и так далее. при достижении PO2449999.000.zip нумерация файлов начинается заново с PO2440001.000.zip, поэтому я использую дату MRfile.
Из комментариев выдается сообщение об ошибке
Сообщение 156, Уровень 15, Состояние 1, Строка 118 Неверный синтаксис рядом с ключевым словом
'ПРИСОЕДИНИТЬСЯ'. Сообщение 102, Уровень 15, Состояние 1, Строка 120 Неверный синтаксис рядом
'МОБ'.