SQL查询问题!!大哥们进来看看

quanxiaoyouzi 2016-12-20 05:10:58
SQL SERVER 2008
各位大哥咨询一个SQL问题查询真实部门:
表字段:公司,一级部门,二级部门,三级部门,人员名称。
B11 D22 S33 S444 name1
B11 D22 S444 S444 name2
B11 D22 S123 S555 name3
其中S444只是代表一个占位符,name1所属部门是S33,name2所属部门是D22,name3所属部门为S555
还有一张公司部门结构表,和上面的数据几乎一样,没有人员。

我想通过SQL知道人真实所在的哪个部门?有办法吗?

谢谢!
...全文
144 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
EdsionWang 2016-12-21
  • 打赏
  • 举报
回复
你这张表不是已经知道name1的员工在S33二级部门D22 一级部门吗? 如果你的S33和D22只是部门ID,那么你做一个连接查询就可以把部门名称拿到了啊。

select A.人员名称, B.二级部门名称, C.一级部门名称 from 人员表 as A
inner join 组织表 as B on A.二级部门 = B.二级部门 
inner join 组织部 as C on A.一级部门 = C.一级部门
欧皇神降术 2016-12-21
  • 打赏
  • 举报
回复
select case when 三级部门!=‘S444’ then 三级部门 when 三级部门='S444' and 二级部门!='S444' then 二级部门 when 三级部门='S444' and 耳机部门='S444' then 一级部门 else parentid end from 表名 WHERE 人员名册='NAME1'
闭包客 2016-12-21
  • 打赏
  • 举报
回复
真实部门就是最深的一级部门。也就是最深的不为 S444 的部门。 T-SQL 可以使用 if else 语句,case when 语句处理。 CLR 里面可以使用 if else 语句,? : 运算符处理。
sdfgrtyu 2016-12-21
  • 打赏
  • 举报
回复
啥意思qwqw
quanxiaoyouzi 2016-12-21
  • 打赏
  • 举报
回复
人工置顶up
quanxiaoyouzi 2016-12-21
  • 打赏
  • 举报
回复
是我想复杂了。把自己绕进去了。

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧