2016-04-05 9 views
-2

以下のように、SQLクエリから行と列を転記する方法。データをデータベーステーブルに追加されたとしても動作しますクエリを記述するために、SQL Server 2012を使用すると、SQLクエリから行と列を転記する方法

enter image description here

+3

はあなたの欲求の出力と何をしようとするとどのようなあなたのRDBMSがありましたが何であるかを私たちに表示します。 \t [** How-to-Ask **](http://stackoverflow.com/help/how-to-ask) \t \t [**スタート**] http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)質問品質を向上させ、より良い回答を得る方法を学ぶことができます。 –

答えて

0

これを試してみてください:

SELECT * FROM t_TableName GROUP BY Month 
0

は試してみてください

SQL Fiddle

MS SQL Server 2008スキーマセットアップ

CREATE TABLE yourtable 
    ( 
     [mon] varchar(3), [to] float, [aapl] float, 
     [msft] float, [ko] float 
    ) 
; 

INSERT INTO yourtable 
([mon],[to],[aapl],[msft],[ko]) 
VALUES 
    ('jan', 12.25,112.25,56.52,45), 
    ('feb', 12.52,125.25,56.87,46), 
    ('mar', 12.65,126,56.94,47), 
    ('apr', 12.95,127,56.99,45), 
    ('may', 12.85,129,57.25,44) 
; 

クエリ1

select * from yourtable 

Results

| mon | to | aapl | msft | ko | 
|-----|-------|--------|-------|----| 
| jan | 12.25 | 112.25 | 56.52 | 45 | 
| feb | 12.52 | 125.25 | 56.87 | 46 | 
| mar | 12.65 | 126 | 56.94 | 47 | 
| apr | 12.95 | 127 | 56.99 | 45 | 
| may | 12.85 | 129 | 57.25 | 44 | 

クエリ2

select * 
from 
(
    select * 
    from yourtable 
    unpivot 
    (
    value 
    for month in ([to],[aapl],[msft],[ko]) 
) unpiv 
) src 
pivot 
(
    max(value) 
    for mon in (jan, feb, mar, apr, may) 
) piv 

Results

| month | jan | feb | mar | apr | may | 
|-------|--------|--------|-------|-------|-------| 
| aapl | 112.25 | 125.25 | 126 | 127 | 129 | 
| ko |  45 |  46 | 47 | 45 | 44 | 
| msft | 56.52 | 56.87 | 56.94 | 56.99 | 57.25 | 
| to | 12.25 | 12.52 | 12.65 | 12.95 | 12.85 |