您的位置:首页 > 数据库

SQL-行转列(PIVOT)实例1

2015-12-23 13:40 369 查看
--未旋转之前的查询结果
select s.Name ShiftName,h.BusinessEntityID,d.Name as DpartmentName
from  HumanResources.EmployeeDepartmentHistory h
inner join HumanResources.Department d
on h.DepartmentID=d.DepartmentID

inner join HumanResources.Shift s
on s.ShiftID=h.ShiftID

WHERE  ENDDATE IS NULL AND
d.Name IN('Production','Engineering','Marketing')

order by ShiftName
--旋转之后的结果

select ShiftName,Production,Engineering,Marketing
from
(select s.Name ShiftName,h.BusinessEntityID,d.Name as DpartmentName
from  HumanResources.EmployeeDepartmentHistory h
inner join HumanResources.Department d
on h.DepartmentID=d.DepartmentID

inner join HumanResources.Shift s
on s.ShiftID=h.ShiftID

WHERE  ENDDATE IS NULL AND
d.Name IN('Production','Engineering','Marketing')

)t
pivot
(count(BusinessEntityID)
for DpartmentName in ([Production],[Engineering],[Marketing]))b

order by ShiftName

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: