MYSQL存储过程,批准和批准

时间:2014-12-01 02:45:27

标签: mysql stored-procedures

我有点新的阅读存储过程。

我在想如果在mysql中的存储过程中这是可行的。

我有一系列的审批流程称为步骤。批准的栏目; 1是是0是否。

基本上我的批准顺序是步骤1到3 .. 如果第1步批准状态为0,他将是第一个批准或查看表格。 如果步骤1批准为1.步骤2现在可以看到该表。

交易步骤表:

id  transaction_id  approver_id step    approved
1   1               1           1       1
2   1               2           2       0
3   1               3           3       0

4   2               3           1       1
5   2               1           2       1
6   2               2           3       0

7   3               2           1       0
8   3               3           2       0
9   3               1           3       0

10  4               1           1       1
11  4               3           2       0
12  4               2           3       0

示例如果我的Approval id = 2

在我的视图中:我只能看到所有下一个批准

的人
id  transaction_id  approver_id step    approved
2   1               2           2       0
6   2               2           3       0
7   3               2           1       0

请告诉我这是否可行。谢谢

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望第一个未经批准的行批准者为2。

试试这个:

select ts.*
from transactionsteps ts join
     (select transaction_id, min(step) as minstep
      from transactionsteps
      where approved = 0
      group by transaction_id
     ) t
     on ts.transaction_id = t.transaction_id and
        ts.step = t.minstep
where approver_id = 2;