У меня есть таблица, Table1, в следующем формате:не в состоянии использовать запрос на выборку, чтобы получить количество дней в функции DATEADD
Country No_Of_Days
XX 5
YY 10
И мне нужно обновить столбец датой_окончания в другой таблице, Table2, который имеет дата_начала путем добавления дней в указанной выше таблице дата_начала:
Country Start_Date End_Date Calc_Manual_Flag
XX 25-Dec-16 30-Dec-16 CALC
YY 02-Jan-17 12-Jan-17 CALC
Я использовал следующий запрос, но это не похоже на работу:
UPDATE dbo.Table2
SET End_date =
dateadd(
day,
(SELECT No_Of_Days FROM Table1 WHERE Table2.Country = Table1.Country),Start_Date),
Calc_Manual_Flag = 'CALC'
WHERE Table2.End_Date IS NULL
AND Table2.Start_Date IS NOT NULL
Но, похоже, он работает неправильно. Обновления, похоже, не происходят, как ожидалось. Я получаю следующее сообщение об ошибке:
Msg 512, Level 16, State 1, Line 1
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
Просьба предоставить руководство по этому вопросу.
Что происходит? –
Что означает «не работает»? Вы получаете ошибки? Неожиданные значения? –
Я получаю сообщение 0 строк обновлено – Manus