ID为1有的不能在ID为2,3,4,5,6,7,8,9等等的类型中出现,同类型ID为2也不能出现后面

ID为1有的不能在ID为2,3,4,5,6,7,8,9等等的类型中出现,同类型ID为2也不能出现后面 2,3,4,5,6等等类型的值

微信截图_20201225095314.png


with  t1  as(select distinct a.eid,a.name,a.age,c.ID,

case 

when c.Title = '高管级' then '公司领导'

when c.Title = '部门正职' then '部门正职'

when c.Title = '总助级' then '总助级'

when c.Title = '部门副职' then '部门副职'

when c.Title = '副总工程师' then '副总工程师'

when c.Title = '主任工程师' then '主任工程师'

when c.Title = '部门副职' then '部门副职'

when c.Title = '部门助理' then '部门助理'

when b.Title = '项目管理职务' then '项目经理'

when c.Title = '副主任工程师' then '副主任工程师'

else '其他'

end as TYPE, f.Title as 单元 from ods_GBMX a

left join ODS_ECD_ZWTYPE b on a.zwtypy = b.ID

LEFT JOIN ods_ECD_ZWLEVEL c on a.zwlevel = c.ID

left JOIN ODS_ECD_EMPCUSTOM2 d on d.ID = a.jobid

left join ODS_EVW_EMPOLYEE e on e.EID = a.eid

left join ODS_OUNIT f on f.UTID = e.utid

WHERE  RCPID = 3)

select * from t1 

where type  not in ('其他','项目经理')

order by id


Peihowe 发布于 2020-12-25 09:51 (编辑于 2020-12-25 09:53)
1min目标场景问卷 立即参与
回答问题
悬赏:13 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
dugangwywtLv3见习互助
发布于2020-12-28 08:41(编辑于 2020-12-28 09:24)

没有你写的这么复杂啊,。你要表拿出来,我帮你写; 

因为你要把ODS_EVW_EMPOLYEE   这个表放前出,人不能重复,,但是岗位,或职务重复了,所有出来了一个人,出现了两个ID

但如果 有需求,一个人两个职务 ,需要以最大的职务来显示出来,外面还要套一层   CROSS APPLY 


SELECT bb.*,aa.* FROM dbo. ODS_EVW_EMPOLYEE   bb 

CROSS APPLY (

SELECT TOP 1 * FROM (“你查询出来的SQL语句” )   b       WHERE bb.EID =b.EID 


)aa      

  • 2关注人数
  • 397浏览人数
  • 最后回答于:2020-12-28 09:24
    请选择关闭问题的原因
    确定 取消
    返回顶部