更新表字段,其中表A中的字段=表B中的字段

时间:2011-07-07 20:08:01

标签: foxpro database-relations

HELP!这是我的问题我不知道出了什么问题我有2个表销售和其他交易,交易表与销售表相同但非常详细的销售表只是总销售...在销售表中我有一些销售在0 ..我想更新交易的详细销售,以便在两个表都是0 ..现在这里是更新命令

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

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

2 个答案:

答案 0 :(得分:2)

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

您遇到的问题是因为您只查看销售中的当前记录。试试这个。我也正在纠正你的命令,这样它现在只影响total_sale = 0的Sales。否则,你要将每个事务设置为0,我认为这不是你想要的:

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

答案 1 :(得分:0)

问题是指针没有在Sales表中移动,因此您只处理相同的idreceipt。您需要在Sales表上进行扫描:

这是修复

的一种方法
Select Sales

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