Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 需要根据日期将多行合并为一行_Sql_Sql Server 2008_Tsql - Fatal编程技术网

Sql 需要根据日期将多行合并为一行

Sql 需要根据日期将多行合并为一行,sql,sql-server-2008,tsql,Sql,Sql Server 2008,Tsql,整天都在做这件事,似乎没有任何进展。 我有这样的数据: MemberID Group MemberStatusType ContactTask Jan Assess Date Jan RF Score Jan PF Score Feb Assess Date Feb RF Score Feb PF Score Mar Assess Date Mar RF Score Mar PF Score 5

整天都在做这件事,似乎没有任何进展。
我有这样的数据:

MemberID    Group           MemberStatusType    ContactTask         Jan Assess Date     Jan RF Score    Jan PF Score    Feb Assess Date     Feb RF Score    Feb PF Score    Mar Assess Date     Mar RF Score    Mar PF Score
5213        MSO             Engaged X           Follow Up Contact   1/31/2012           1               4               NULL                        NULL            NULL            NULL            NULL            NULL
5213        MSO             Engaged X           Follow Up Contact   NULL                NULL            NULL            2/29/2012                   2                   2           NULL            NULL            NULL
5213        MSO             Engaged X           Follow Up Contact   NULL                NULL            NULL            NULL                        NULL            NULL        3/21/2012           5               4
MemberID    Group   MemberStatusType    ContactTask         Jan Assess Date     Jan RF Score        Jan PF Score        Feb Assess Date     Feb RF Score    Feb PF Score    Mar Assess Date     Mar RF Score        Mar PF Score
5213        MSO         Engaged X       Follow Up Contact   1/31/2012               1                   4               2/29/2012               2               2           3/21/2012               5                   4
我想要得到的是这样的数据:

MemberID    Group           MemberStatusType    ContactTask         Jan Assess Date     Jan RF Score    Jan PF Score    Feb Assess Date     Feb RF Score    Feb PF Score    Mar Assess Date     Mar RF Score    Mar PF Score
5213        MSO             Engaged X           Follow Up Contact   1/31/2012           1               4               NULL                        NULL            NULL            NULL            NULL            NULL
5213        MSO             Engaged X           Follow Up Contact   NULL                NULL            NULL            2/29/2012                   2                   2           NULL            NULL            NULL
5213        MSO             Engaged X           Follow Up Contact   NULL                NULL            NULL            NULL                        NULL            NULL        3/21/2012           5               4
MemberID    Group   MemberStatusType    ContactTask         Jan Assess Date     Jan RF Score        Jan PF Score        Feb Assess Date     Feb RF Score    Feb PF Score    Mar Assess Date     Mar RF Score        Mar PF Score
5213        MSO         Engaged X       Follow Up Contact   1/31/2012               1                   4               2/29/2012               2               2           3/21/2012               5                   4

我尝试过PIVOT,但我不喜欢结果,因为我不需要聚合任何东西。我只需要从多行获取数据,并将其全部转移到一行。我在这个网站上也看到过一些这样做的例子,但我也没能让这些东西发挥作用,或者有些是针对oracle或mysql的,我不知道如何转换为MS SQL。

你可以通过聚合实现这一点:

select MemberId, Group, MemberStatusType, ContactTask,
       max([Jan Assess Date]) as [Jan Assess Date],
       . . .
from t
group by MemberId, Group, MemberStatusType, ContactTask;

max()
函数将用于返回行中的非空值(如果有)。

您说您不需要聚合任何内容,但这正是正确的。这不起作用。这样做的目的是使输出看起来像我开始时表格中的一样,只有Jan在最下面一行,March在最上面一行。只是翻了翻结果。