2017-08-16 82 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 

如何我可以这样做吗?

+0

什么查询? – dbajtr

+0

是否要更改服务器中的表,还是只需要SQL来实现该输出? – RealCheeseLord

+0

您是否尝试过任何解决问题的方法?你可以在这里找到许多类似的问题是SO寻址完全相同的问题, –

回答

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

我认为这是UNION ALL应该做你需要的东西:列

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格式(new_qtrdate1,'dd-MMM')为MTBURDATE1,格式(new_qtrdate2,'dd-MMM')为MTBURDATE2,格式(new_qtrdate3,'dd-MMM')为MTBURDATE3, ,new_mtbur1为MTBUR1,new_mtbur2为MTBUR2,new_mtbur3为来自Filterednew_craform的MTBUR3 其中 – Ayaz