У меня есть база данных PervasiveSQL с таблицей затрат на продажу товаров, перечисленных в StoreCode. Данные выглядят как данные ниже
StoreCore ItemCode LastPurchAmt
001 2201 78.75
002 2201 75.0
003 2201 75.0
05 2201 0.0
07 2201 75.0
08 2201 78.75
09 2201 75.0
10 2201 75.0
Они просили, чтобы я установил LastPurchAmt для каждого элемента = LastPurchAmt магазина 001.
Я прочитал больше примеров обновления и перепробовал больше вариантов для оператора обновления, чем мне хотелось бы запомнить, но я просто не могу этого понять.
Это утверждение:
Update MultiStoreTrn as UpdateTrn
join (select ItemCode, LastPurchAmt from MultiStoreTrn where StoreCode = '001') as ValueTrn
on UpdateTrn.ItemCode = ValueTrn.ItemCode
set UpdateTrn.LastPurchAmt = ValueTrn.LastPurchAmt
where UpdateTrn.StoreCode <> '001';
Возвращает сообщение об ошибке:
[LNA] [Pervasive] [ODBC Engine Interface] Для обновления необходимо указать имя таблицы или представления.
Этот код:
Update MultiStoreTrn as UpdateTrn
set UpdateTrn.LastPurchAmt = (Select LastPurchAmt from MultiStoreTrn where StoreCode = 001 and ItemCode = UpdateTrn.ItemCode);
Работает, но обновляет все значения до нуля
Я также пробовал этот код:
Update MultiStoreTrn
set MultiStoreTrn.LastPurchAmt = ValueTrn.LastPurchAmt
from (select ItemCode, LastPurchAmt from MultiStoreTrn where storecode = 001) as ValueTrn
where MultiStoreTrn.StoreCode <> 001 and MultiStoreTrn.ItemCode = ValueTrn.ItemCode;
Работает без ошибок, но ничего не обновляется.
Любые идеи, что мне не хватает: (
Спасибо, что читаете время и отвечаете ...