SQL-команда для обновления уровней и количества повторного заказа на основе проданного запаса с года на дату или между двумя датами
Я попытался добавить следующее в свою Утилиту базы данных в IQ Retail, но это не сработало.
update Stock
set MIN_LVL=UnitsYearToDate/5
set ORD_QUANT=UnitsYearToDate/5*3
where (only using one of the following)
REGULAR_SU='xxx'
or
SUBDEPARTM='xxx'
or
CODE between 'xxx' and 'xxx'
Я получаю эту ошибку
"Ошибка DBISAM Engine # 11949 Ошибка синтаксического анализа SQL - ожидаемый конец оператора, но вместо этого он найден установленным в операторе UPDATE SQL в строке 3, столбец 1"
У меня нет знаний по программированию, я просто пытаюсь помочь себе из-за своего удаленного местоположения. Буду признателен за любые советы о том, как я могу обновить минимальные уровни заказа и количество заказов в определенных партиях для примерно 12000 наименований.
Я использую упакованную утилиту базы данных в программном обеспечении IQ Retail.
3 ответа
Попробуйте ниже - вам не нужно определять множество несколько раз, просто используйте один набор и определите несколько столбцов, используя запятую (,)
update Stock set MIN_LVL=UnitsYearToDate/5,ORD_QUANT=UnitsYearToDate/5*3
where REGULAR_SU='xxx' or SUBDEPARTM='xxx' or CODE between 'xxx' and 'xxx'
Ваш синтаксис работает. множественный SET
должен быть разделен запятой:
update Stock
set MIN_LVL=UnitsYearToDate/5, ORD_QUANT=UnitsYearToDate/5*3
where
REGULAR_SU='xxx'
or
SUBDEPARTM='xxx'
or
CODE between 'xxx' and 'xxx'
Как заявляли другие, синтаксис неверен, и если у вас есть несколько SET, вам нужно будет разделить их запятой. Порядок выполнения DBISAM может быть другим, это также необходимо учитывать. Обратитесь к этой документации для инструкции UPDATE.
Попробуйте этот код
UPDATE Stock SET MIN_LVL = 2, ORD_QUAN = 3 FROM Stock WHERE SUBDEPARTM = '0002';