我有两个表员工和部门,员工表模式(Eid,Ename,DOJ,Sal,部门ID)和部门模式(部门ID,Dname)。所以我想要的输出是数。每个部门的员工和根据经验。
输出:
dept |0-5yrs|5-10yrs|10-15yrs
HR | 4 | 9 | 0
Account | 2 | 3 | 1
我的意思是产出是4名员工在人力资源部门有不到5年的经验,9人有超过5年和不到10年的经验,0有10到15年的经验
答案 0 :(得分:0)
您可以在Microsoft SQL中使用数据透视表,如下所示:
select p.DName, p.Under5, p.From5To10, p.MoreThan10
from (
select d.DName, case when datediff(day, e.DOJ, getdate()) / 365 < 5 then 'Under5' when datediff(day, e.DOJ, getdate()) / 365 > 10 then 'MoreThan10' else 'From5To10' end as ExperienceBucket
from Employee e
join Department d on e.[Dept Id] = d.[Dept Id]
) as s
pivot (
count(ExperienceBucket)
for ExperienceBucket in (Under5, From5To10, MoreThan10)
) as p