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

Popular posts from this blog

javascript - RequestAnimationFrame not working when exiting fullscreen switching space on Safari -

Python ctypes access violation with const pointer arguments -

jquery - Keeping Kendo Datepicker in min/max range -