Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 SQL中的列数据转换为行数据_Sql Server 2008 - Fatal编程技术网

Sql server 2008 SQL中的列数据转换为行数据

Sql server 2008 SQL中的列数据转换为行数据,sql-server-2008,Sql Server 2008,我有一张名为Trn_EmpRetation的表格,上面的列是营业额和经营业绩 数据如下所示 TurnOver EmpRetension 22 199 Description TotalNumber TurnOver 22 EmpRetension 199 我希望数据如下所示 TurnOver EmpRetension 22 199 Description TotalNumber Tu

我有一张名为Trn_EmpRetation的表格,上面的列是营业额和经营业绩 数据如下所示

TurnOver    EmpRetension
22           199
Description       TotalNumber
TurnOver           22
EmpRetension       199
我希望数据如下所示

TurnOver    EmpRetension
22           199
Description       TotalNumber
TurnOver           22
EmpRetension       199
如何在SQL中实现这一点

谢谢
基本要求。

也许这就足够了:

SELECT x.Description, x.TotalNumber FROM
(
    SELECT Description = 'TurnOver',
           TotalNumber = SUM(TurnOver)
    FROM dbo.Trn_EmpRetation
    UNION ALL 
    SELECT Description = 'EmpRetension',
           TotalNumber = SUM(EmpRetension)
    FROM dbo.Trn_EmpRetation
) x
您可以使用:

如果您想要一个总和,那么只需使用
SUM
groupby

SELECT  uptv.[Description], TotalNumber = SUM(uptv.TotalNumber)
FROM    Trn_EmpRetation AS t
        UNPIVOT
        (   TotalNumber
            FOR [Description] IN ([Turnover], [EmpRetension])
        ) AS uptv
GROUP BY uptv.[Description];

问题没有提到任何金额或重复项。。。如果这是必需的,尽管我仍然使用UNPIVOT,但只需添加< <代码>和/组> <代码> > -这避免了多个表扫描。没有,但是重复似乎没有意义,更重要的是,一个列<代码> TooToSuth/Cuff>。@ USER 3069097:考虑接受一个答案。不客气