我有点新的阅读存储过程。
我在想如果在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
请告诉我这是否可行。谢谢
答案 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;