sql server - How Can I get Pivot Type Data using T-Sql -
i got requirement needs display top 3 salary employee. got query displaying top 3 employee names this:
select top 3 [employee first name]+' '+[employee surname] [employee full name] [emp ] group [employee first name],[employee surname],[annual salary] order sum([annual salary]) desc result:
[empfullname] --------------- darren ben sam nixon frances oliv but want result like:
[firstemp] [secondemp] [thirdemp] ------------------------------------------- darren ben sam nixon frances oliv i want hard-coded columns , names under it.
thanks advise...
maybe can simplify this:
create table #emp (empid integer identity, [employee first name] varchar(30), [employee surname] varchar(30), [annual salary] decimal) insert #emp ([employee first name], [employee surname], [annual salary] ) values ('darren', 'ben', 100000), ('sam', 'nixon', 80000), ('frances', 'oliv', 70000) select * ( select case (_order) when 1 'firstemp' when 2 'secondemp' when 3 'thirdemp' end col , q.name ( select top 3 row_number() on ( order [annual salary] desc) _order, [employee first name]+' '+[employee surname] name [#emp ] group empid, [employee first name],[employee surname],[annual salary] order 1 ) q ) o pivot ( min(name) col in (firstemp, secondemp, thirdemp) ) p uses row_number() over ... calculate order, pivot transpose rows columns.
Comments
Post a Comment