SQL Server:展平透视结果

SQL Server:展平透视结果,sql,sql-server,pivot,Sql,Sql Server,Pivot,我编写的PIVOT函数生成以下结果集: Date | User | Hour | Result | FIELD1 | FIELD2 | FIELD3 | FIELD4 | FIELD5 | FIELD6 ----------------------------------------------------------------------------------------- 2015-06-23 | Pippo | 1 | OK | NULL

我编写的PIVOT函数生成以下结果集:

Date       | User   | Hour | Result | FIELD1 | FIELD2 | FIELD3 | FIELD4 | FIELD5 | FIELD6 
-----------------------------------------------------------------------------------------    
2015-06-23 | Pippo  |   1  |   OK   |  NULL  |  NULL  |   10   |  NULL  |  NULL  | NULL
2015-06-23 | Pippo  |   1  |   OK   |  NULL  |  5     |   NULL |  NULL  |  NULL  | NULL
2015-06-23 | Pippo  |   1  |   OK   |  1     |  NULL  |   NULL |  NULL  |  NULL  | NULL
对于具有相同日期、用户、小时、结果值的行,是否有方法将所有字段列聚合为一个,如下所示:

2015-06-23 | Pippo  |   1  |   OK   |  1     |  5     |   10   |  NULL  |  NULL  | NULL
我尝试过按(日期、用户、小时、结果)分组,但PIVOT操作符一直在分解,MAX在任何字段#列上都是如此


有什么想法吗?

您可以使用
透视图作为子选择,并在主查询上合并结果

SELECT      Date, User, Hour, Result,
            SUM(ISNULL(Field1,0) Field1, 
            SUM(ISNULL(Field2,0) Field2, 
            ...
FROM        (   SELECT  ...
                FROM    ...
                PIVOT   ...
            )   Subquery
GROUP BY    Date, User, Hour, Result

您可以将您的
PIVOT
用作子选择,并将结果合并到主查询中

SELECT      Date, User, Hour, Result,
            SUM(ISNULL(Field1,0) Field1, 
            SUM(ISNULL(Field2,0) Field2, 
            ...
FROM        (   SELECT  ...
                FROM    ...
                PIVOT   ...
            )   Subquery
GROUP BY    Date, User, Hour, Result

在子查询中只需保留三列。
PIVOT
函数为具有唯一所有列的行生成行,而不仅仅用于PIVOT

您必须在子查询中只保留三列。
PIVOT
函数为具有唯一所有列的行生成行,不仅用于PIVOT

使用
select
包装sql并进行聚合。使用
select
包装sql并进行聚合。谢谢Rubens,但我需要将字段#列分开。@SimoneF将PIVOT结果视为一个表;如何整合您的数据?在我的代码片段中,我将
字段#
列分开。现在我明白了。谢谢我差不多也是这么做的。我以前没有得到的是我需要聚合,因此我需要求和或最大化字段!谢谢鲁本斯,但我需要将字段#列分开。@SimoneF将透视结果作为一个表来考虑;如何整合您的数据?在我的代码片段中,我将
字段#
列分开。现在我明白了。谢谢我差不多也是这么做的。我以前没有得到的是我需要聚合,因此我需要求和或最大化字段!我想我很愚蠢,心烦意乱,或者两者兼而有之。谢谢通过使用外部查询对结果进行排序来限制我透视和分组的列,我想我是愚蠢的,心烦意乱的,或者两者兼而有之。谢谢通过使用外部查询对结果进行排序来限制我对其进行透视和分组的列。