Я пытаюсь выбрать первый результат из инструкции select в инструкции набора обновления. Я могу выбрать верхнюю 1, но порядок заказа не работает. Есть ли способ заставить его работать или обходным путем?Порядок заказа в наборе Заявление об обновлении
UPDATE a1
SET a1.ServiceLength = (SELECT TOP 1
a3.START_DATE
ORDER BY a3.START_DATE DESC
)
FROM #t a1
JOIN #TempService a2 ON a1.EmployeeNo = a2.EMPLOYEE_NO
JOIN #TempService a3 ON a3.EMPLOYEE_NO = a2.Employee_No
WHERE a2.START_DATE = a3.END_DATE + 1
AND @specifiedDate > a2.START_DATE
Я скопировал точный sql, который вы предоставили, и это вызывает у меня следующую ошибку: Неправильный синтаксис рядом с ключевым словом 'with'. Если этот оператор является общим табличным выражением, предложением xmlnamespaces или предложением контекста отслеживания изменений, предыдущий оператор должен быть прерван точкой с запятой. – Baahubali
@ user1490835 - Try'; WITH TopDate ... 'также какую версию сервера sql вы используете? Это должно отлично работать для SQL Server 2005 + –
Спасибо Mate. С помощью нескольких обходных решений я получил работу так, как мне хотелось. Спасибо за вашу помощь снова. Приветствия. – Baahubali