【发布时间】:2014-06-19 23:13:53
【问题描述】:
在所有使用 PIVOT 和 UNPIVOT 的 SQL 转置问题中,我还没有看到将单行转置为列的问题。这是我的查询:
SELECT '' as Status, '' as "Count", sum(Created) as "Created",
sum(Forwarded) as "Forwarded", sum(Replied) as "Replied"
FROM
(
SELECT
CASE WHEN a.TO_WG_ID is null and a.CREATED_DATE_TIME =
(select min(b.created_date_time) from ymtn.message b
where b.thread_id = a.thread_id) THEN 1 ELSE 0
END AS "Created",
CASE WHEN a.TO_WG_ID is not null and a.FROM_WG_ID is not null THEN 1 ELSE 0
END AS "Forwarded",
CASE WHEN a.TO_WG_ID is null and a.CREATED_DATE_TIME != (select
min(b.created_date_time) from ymtn.message b where b.thread_id =
a.thread_id) THEN 1 ELSE 0
END AS "Replied"
FROM ymtn.MESSAGE a left join YMTN.WORKGROUP b
ON a.FROM_WG_ID=b.WORKGROUP_ID where b.WORKGROUP_ID='1STOP_PROCESS'
) a
这是我上面查询的输出(有两个静态字段 - 状态和计数 - 如果我能弄清楚是否正确转置,我可能不需要):
Status Count Created Forwarded Replied
1693 209 1499
这是我想要的输出:
Status Count
Created 1693
Forwarded 209
Replied 1499
请帮我找到一种方法来做到这一点。谢谢!
【问题讨论】:
标签: sql sql-server transpose