0

帮助!这是我的问题,我不知道发生了什么问题销售表我在 0 中有一些销售 .. ​​我想更新交易中的销售细节,以便在两个表中都是 0 .. 现在这里是更新命令

UPDATE transaction SET total_sale=0 WHERE transaction.idrecipt = sales.idreceipt

问题是它只更新交易帮助中的 5 个字段!!我究竟做错了什么!!

4

2 回答 2

2

首先,我要指出,将相同的数据放在两个不同的表中通常被认为是糟糕的设计。我什至认为没有理由将 total_sale 存储在任何地方。你总是可以从构成销售的交易中计算出来。

您遇到的问题是因为您只查看 Sales 中的当前记录。试试这个。我还在更正您的命令,使其仅影响现在 total_sale=0 的销售。否则,您要将每笔交易设置为 0,我认为这不是您想要的:

UPDATE transaction ;
  SET total_sale=0 ;
  FROM sales ;
  WHERE transaction.idreceipt=sales.idreceipt ;
   AND sales.total_sale=0

添马舰

于 2011-07-07T20:52:05.170 回答
0

问题是指针在您的销售表中没有移动,因此您只处理同一个 idreceipt。您需要扫描销售表:

这是解决此问题的一种方法

Select Sales

Scan
    UPDATE transaction SET total_sale=0 WHERE transaction.idrecipt = sales.idreceipt
EndScan
于 2011-07-08T14:47:57.910 回答