В хранимой процедуре SQL Server 2000 я пытаюсь выполнить инструкцию update для переменной таблицы. В настоящее время он дает мне ошибку: «Префикс столбца« WST »не совпадает с именем таблицы или псевдонимом, используемым в запросе».«Префикс столбца« * »не совпадает с именем таблицы или псевдонимом, используемым в запросе». при использовании таблицы temp
UPDATE WST
SET
WST.QtySold = (SELECT SUM(II.QtyShipped)
FROM #InvoiceItems II
WHERE II.InvoiceDate >= WST.StartDate
AND II.InvoiceDate <= WST.EndDate),
WST.TotalSales = (SELECT SUM(ISNULL(II.QtyShipped, 0) * ISNULL(II.UnitPrice, 0))
FROM #InvoiceItems II
WHERE II.InvoiceDate >= WST.StartDate
AND II.InvoiceDate <= WST.EndDate),
WST.TotalCost = (SELECT SUM(ISNULL(II.QtyShipped, 0) * ISNULL(II.UnitCost, 0))
FROM #InvoiceItems II
WHERE II.InvoiceDate >= WST.StartDate
AND II.InvoiceDate <= WST.EndDate)
FROM @WeeklySalesTrend WST
WHERE WST.WeekNo = 1
Эта ошибка появилась только после того, как я создал #InvoiceItems временной таблицы и заменить внутреннее соединение двух таблиц с временной таблицей. Почему изменение внутренней таблицы двух таблиц для таблицы temp вызывает эту ошибку и как мне ее исправить/обойти?
Попробуйте удалить "WST." перед столбцами, которые вы обновляете. По определению только одна таблица может быть целью обновления, поэтому это избыточно, и у меня есть скрытое подозрение, что оптимизатор запутался. –