2013-07-08 26 views
0

我需要MODEL從下面的表改變行列

------------------------ 
MODEL YEAR PRICE 
------------------------ 
AUDI 2012 45 LAKHS 
BENZ 2013 40 LAKHS 
BMW  2011 38 LAKHS 

我想要一個SQL查詢來翻轉表(行作爲coloumns)

--------------------------------------- 
Model  AUDI  BENZ  BMW 
---------------------------------- 
Year  2012  2013  2011 
Price  45Lakhs 40Lakhs 38Lakhs 
+1

http://stackoverflow.com/questions/13031846/manipulate-results-to-display-rows-as-columns – JsonStatham

+0

HTTP: //sackoverflow.com/questions/10699997/sql-server-transpose-rows-into-columns –

+0

請搜索「Pivot in sql server」。 –

回答

1

你可以試試這個它完美的作品

CREATE TABLE SOMEDATA(
         MODEL varchar(10), 
         YEAR int, 
         PRICE int 
         ) 

INSERT INTO SOMEDATA VALUES('AUDI' , 2012 , 45) 
INSERT INTO SOMEDATA VALUES('BENZ' , 2013 , 40) 
INSERT INTO SOMEDATA VALUES('BMW' , 2011 , 38) 


select * from SOMEDATA 

SELECT 'Year' as Model, AUDI, BENZ,BMW 
FROM (
SELECT MODEL, YEAR 
FROM SOMEDATA) up 
PIVOT (avg(YEAR) FOR MODEL IN (AUDI, BENZ,BMW)) AS pvt 

UNION ALL 

SELECT 'Price' as Model, AUDI, BENZ,BMW 
FROM (
SELECT MODEL,Price 
FROM SOMEDATA) up 
PIVOT (avg(Price) FOR MODEL IN (AUDI, BENZ,BMW)) AS pvt 

drop table SOMEDATA