如何解决在最大值上更新表的存储过程
我需要一个不带任何参数运行的存储过程。它可以利用临时表或任何需要的东西。
输入表:
row#| group_id | invoice_type_id | transformed_id | net
1 | 7 | 1 | NULL | 28.40
2 | 7 | 2 | NULL | 11.00
3 | 7 | 3 | | 65.00
4 | 7 | 4 | | 17.00
5 | 7 | 3 | | 18.00
6 | 7 | 4 | | 34.50
7 | 8 | 1 | | 58.00
所需的输出:
row#| group_id | invoice_type_id | transformed_id | net
1 | 7 | 1 | NULL | 28.40
2 | 7 | 2 | NULL | 11.00
3 | 7 | 3 | 1 | 65.00
4 | 7 | 4 | 2 | 17.00
5 | 7 | 3 | 2 | 18.00
6 | 7 | 4 | 1 | 34.50
7 | 8 | 1 | | 58.00
说明:
假设我们按 group_id
对数据进行分组,并且第一组具有 group_id=7
)。在该组数据中,会有一行带有 invoice_type_id=1
,另一行带有 invoice_type_id=2
。我需要按 invoice_type_id=3
过滤行并用 max(net)
取行。该行必须更新 SET transformed_id=1
或 2
(以较高者为准。我采样输出第三行#3 得到 1,因为带有 invoice_type_id=1 的行#1 高于行# 2)。 invoice_type_id=3
的剩余行应更新为 SET transformed_id=1
或 2
(以较低者为准)。 invoice_type_id=4
也是如此。
它应该对每组数据进行迭代(按group_id
分组)并重复上述逻辑。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。