我有两张table
utr_details
utr | utr_amt |match_flag(default 0)
1 |10 |0
1 |20 |0
1 |20 |0
2 |30 |0
2 |20 |0
2 |10 |0
export_data
utr | utr_sum_amt
1 | 50
2 | 100
如上所示,表utr\u details of utr 1中的utr\u amt之和为50,这等于针对utr 1的export\u数据中的utr\u sum\u amt。但两个表中utr2之和并不相等。我的任务是更新match\u flag的值为1,其中两个表中的和是相等的。在这种情况下,match\u flag对于utr\u details表中的utr 1是1。请帮助我生成一个mysql查询。是否可以在单个查询中实现这一点?
3条答案
按热度按时间vom3gejh1#
查询可能如下所示:
下面是它的工作原理。
1) 计算实际值和:
2) 加入
export_data
使用此新选项,选择并添加WHERE
子句只选择总和不同的行。3) 跑
UPDATE
将上述结果用作过滤器。hivapdat2#
也许这里有更多的疑问是严格必要的,但你得到的想法。。。
tvokkenx3#