日期:2014-05-18  浏览次数:20440 次

多表查询问题向大家请教
各位高人,有个SQL查询请教:

平台:MS-SQL   Server数据库

有两个表

UserInfo表
UserNo UserLevel
张三 4
李四 5
王五 6

FPR表
UserNo SXH Flag
张三 34 0
李四 34 1
王五 34 0
张三 33 0
李四 32 1
王五 31 0


我想查询得到如下值,在FRP表中查询UserNo为“张三”的SXH,条件是FPR表中的Flag值为0,且UserInfo表中的UserLevel大于“张三”的UserLevel值的行。

如,上述测试数据中,返回的SXH值为
34
33


------解决方案--------------------
--这样?

select sxh
from FPR as a
inner join UserInfo as b on A.UserNo=B.UserNo
where b.UserNo= '张三 ' and Flag=0

------解决方案--------------------
如果那个条件不成立就没有必要join
select SXH from FPR where Flga=0 and UserNo= '张三 '
------解决方案--------------------
如果是一条线下来,个人认为以文档为中心好设计,表中将要审批人员串成一串,再来一个字段放已审人员的串,两者比较为不能看到的人员,如果有多部分,再加字段,只要不串部门,再汇总到老总那里也是可以的