根据从同一表中选择来更新行

时间:2019-01-02 09:15:39

标签: pervasive pervasive-sql

我有一个PervasiveSQL DB,其表带有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 =设置为001商店的LastPurchAmt。

我已经阅读了更多的更新示例,并为更新语句尝试了更多的变体,但我似乎并不记得。

此声明:

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] [无处不在] [ODBC引擎接口]必须指定表或视图名称以进行更新。

此代码:

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;

它运行没有错误,但是没有更新。

任何想法我想念的是什么:(

感谢您的阅读和回答时间...

0 个答案:

没有答案