先看以下数据表:
ID leaveID Approver Grade Allow
1 1 审核人1 1 0
2 1 审核人2 2 0
3 1 审核人3 3 0
问题:
如果当审核人3前面的层级的Allow不为1时,所对应则不显示给审核人3查看。审核人1和审核人2也是以此类推。这段SQL怎样写?非常感谢!!
SQL查询语句分层级显示数据的问题
答案:4 悬赏:40 手机版
解决时间 2021-01-22 17:54
- 提问者网友:你独家记忆
- 2021-01-22 08:18
最佳答案
- 五星知识达人网友:封刀令
- 2021-01-22 09:41
DECLARE @A INT
DECLARE @B INT
SET @A=1
SELECt @B=MAX(GRADE) FROM TABLE
WHILE (@A<@B)
BEGIN
SELECt * FROM TABLE WHERe CRADE=@A AND ALLOW=1
SET @A=@A+1
END
DECLARE @B INT
SET @A=1
SELECt @B=MAX(GRADE) FROM TABLE
WHILE (@A<@B)
BEGIN
SELECt * FROM TABLE WHERe CRADE=@A AND ALLOW=1
SET @A=@A+1
END
全部回答
- 1楼网友:三千妖杀
- 2021-01-22 12:01
1 select 员工,部门 from tablename where 员工='p3';
2 select 部门,员工 from tablename where 部门='d'
- 2楼网友:轻熟杀无赦
- 2021-01-22 11:35
加个判断不行么?用SQL语句查出当前审批人的Allow。若不为0,则隐藏,否则则显示。加个判断不就很简单了吗?
- 3楼网友:时间的尘埃
- 2021-01-22 10:22
你肯定是知道了是哪个审核人才能判断的,所以,此时审核人的grade也就知道了,
那么 比如现在是审核人3,那么他的grade就是3,那么就查他上级grade的allow
select * from 表 where Grade=当前审核人的grade-1 and allow = 1,如果有这样的记录,显示给他看,否则提示没有
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯