【发布时间】:2015-09-26 13:53:08
【问题描述】:
我正在尝试对我的数据进行反透视,但得到了一些奇怪的结果。我怎样才能做到这一点?
下面是我的代码和结果截图。 (SQL Fiddle)
select distinct recId, caseNumber, servtype, mins
from
(
select
recid
,caseNumber
,[preEnrollment_type]
,[preEnrollment_minutes]
,[screening_type]
,[screeningEnA_minutes]
,[ifsp_type]
,[ifsp_minutes]
from
CaseManagementProgressNote
where
[formComplete]=1
and [reviewed]<>1
and [dataentry]<>1
and [caseManagementEntry]=1
and [serviceCoordinator] <> 'webmaster@company.net'
and [contactDateTime] >= '1/1/2015'
and [childID] is not null
) as cp
unpivot
(
servType for servTypes in ([preEnrollment_type],[screening_type],[ifsp_type])
) as up1
unpivot
(
mins for minutess in ([preEnrollment_minutes],[screeningEnA_minutes],[ifsp_minutes])
) as up2
order by
recId
顶部是奇怪的 unpivoted 数据,底部是实际表格。
正如您在unpivoted 数据中看到的,[column]_type 重复了两次并且对应的值不正确。
我需要
1439 964699 -NA- null
1439 964699 SC 45
1439 964699 TCM FF 20
还要考虑到我还有更多列可供选择。
这是我使用的参考mssqltips
SQL Fiddle 上面的例子。
【问题讨论】:
-
如果你添加了一个 SQL Fiddle ,你很有可能会得到一个有用的答案。
标签: sql sql-server pivot unpivot