工作流程过程 - 如果所有记录都已批准,则创建新行

时间:2017-09-10 13:45:21

标签: mysql sql

我正在尝试编写一个查询,我需要检查多个记录是否在同一个阶段,然后我插入一个新记录,如果记录不在同一个阶段,它应该什么也不做。

表记录示例:

RecordID              StageID         
1                     3
1                     2
5                     3
7                     3
7                     3

当RecordID满足条件时,如果多个记录处于同一阶段那么它应该插入这样的新记录

RecordID              StageID
5                     4
7                     4

1 个答案:

答案 0 :(得分:1)

我认为正确措辞INSERT INTO ... SELECT应该适用于此。下面的SELECT查询查找所有阶段相同的所有记录,并返回相应的RecordID以及当前阶段加1。请注意,我们可以在此处简单地使用MAX(或MIN或任何聚合),因为此类匹配记录的所有阶段值都相同。

INSERT INTO yourTable (RecordID, StageID)
SELECT RecordID, MAX(StageID) + 1
FROM yourTable
GROUP BY RecordID
HAVING MIN(StageID) = MAX(StageID)