Я пытаюсь обновить (используя внутренние объединения для трех таблиц) статистику предметов STAT
для таблицы IM_ITEM
, выделив предметы, которые были проданы менее чем 12, как "D" (Прервать).
Во 2-й таблице PS_TKT_HIST_LIN
есть столбец Количество проданных QTY_SOLD
для каждого элемента в каждый день и столбец даты BUS_DAT
.
. Мне также нужна третья таблица IM_INV
для Отфильтруйте данные, я должен сказать, что последняя полученная дата LST_RECV_DAT
для этих позиций раньше, чем "2019-01-01", а последняя дата продажи LST_SAL_DAT
- после "2019-01-01". Я использовал следующий код
UPDATE M
SET M.STAT = 'D'
FROM
dbo.IM_ITEM AS M
INNER JOIN
IM_INV AS N
ON
M.ITEM_NO = N.ITEM_NO
INNER JOIN
dbo.PS_TKT_HIST_LIN S`
ON
M.ITEM_NO = S.ITEM_NO
WHERE
CONVERT(DATETIME, FLOOR(CONVERT(FLOAT, N.LST_RECV_DAT))) <= '2019-01-01'
AND CONVERT(DATETIME, FLOOR(CONVERT(FLOAT, N.LST_SAL_DAT))) >= '2019-01-01'
AND M.STAT = 'A'
AND SUM(case when DATEPART(YYYY, (BUS_DAT)) = DATEPART(YYYY, DATEADD(YYYY, -1, getdate()))
AND DATEPART(yyyy, (BUS_DAT)) = DATEPART(yyyy, DATEADD(YYYY, -1, getdate()))
then qty_sold else 0)<12
Поставляется с ошибкой. Любой совет, пожалуйста