2017-08-16 4 views
1

SQL Serverに問題があります。行を列に変換する

私のクエリは、このようなものです:

select Format(new_qtrdate1,'dd-MMM') as MTBURDATE1, 
     Format(new_qtrdate2,'dd-MMM') as MTBURDATE2, 
     Format(new_qtrdate3,'dd-MMM') as MTBURDATE3, 
     new_mtbur1 as MTBUR1, 
     new_mtbur2 as MTBUR2, 
     new_mtbur3 as MTBUR3 
    from Filterednew_craform 
where 

私のクエリの現在の結果は次のようになります。

(MTBURDATE1) (MTBURDATE2) (MTBURDATE3) MTBUR1 MTBUR2 MTBUR3 
------------------------------------------------------------------------ 
01-May   01-Jun  01-Jul 34214 10756 9879 

私は何を取得したいことはこれです:

Date MTBUR 
------------ 
01-May 34214 
01-Jun 10756 
01-Jul 9879 

方法それをしてもいいですか?私はあなたが必要とする何をすべきことがあると思いUNION ALL

+0

いただきました!あなたのクエリ? – dbajtr

+0

あなたのサーバーのテーブルを変更したいのですか、またはその出力を達成するためにSQLが必要なだけですか? – RealCheeseLord

+0

問題を解決するためにこれまでに何か試しましたか? –

答えて

3

あなたは列の数を固定している場合は、以下試してください。

with CTE as 
(
    SELECT....... -- Your Query 
) 

Select MTBURDATE1 AS Date, MTBUR1 AS MTBUR from CTE 
UNION ALL 
Select MTBURDATE2, MTBUR2 from CTE 
UNION ALL 
Select MTBURDATE3, MTBUR3 from CTE 
1

SELECT (MTBURDATE1) 
     , MTBUR1 
    FROM Filterednew_cra 
UNION ALL 
SELECT (MTBURDATE2) 
     , MTBUR2 
    FROM Filterednew_cra 
UNION ALL 
SELECT (MTBURDATE3) 
     , MTBUR3 
    FROM Filterednew_cra 
+0

すべてのフィールドは同じテーブルからです – Ayaz

+0

私のクエリはこのようです: - select MTBURDATE3、 としてMTBURDATE3、 new_mtbur1としてMTBURDATE2、形式(new_qtrdate3、 'dd-MMM')としてMTBURDATE1、フォーマット(new_qtrdate2、 'dd-MMM')としてフォーマット(new_qtrdate1、 'dd-MMM')をMTBUR2として、new_mtbur2をMTBUR2として、new_mtbur3をMTBUR3 からFilterednew_craform – Ayaz