【发布时间】:2013-06-12 23:54:19
【问题描述】:
我有一个包含以下列的表格
defect_id, developer_name, status, summary, root_cause,
Secondary_RC, description, Comments, environment_name
root_cause 列的值是 Enviro、Requi、Dev、TSc、TD、Unkn,并且
列 environment_name 有 QA1、QA2、QA3
我需要准备一份如下格式的报告
Enviro Requi Dev TSc TD Unkn Total
QA1 9 1 14 17 2 3 46
QA2 8 1 14 0 5 1 29
QA3 1 1 7 0 0 1 10
Total 18 3 35 17 7 5 85
我已经准备好报告了
Enviro Requi Dev TSc TD Unkn
QA1 9 1 14 17 2 3
QA2 8 1 14 0 5 1
QA3 1 1 7 0 0 1
我使用下面的查询得到了上面的结果
select *
from
(
select environment_name as " ", value
from test1
unpivot
(
value
for col in (root_cause)
) unp
) src
pivot
(
count(value)
for value in ([Enviro] , [Requi] , [Dev] , [Tsc], [TD] , [Unkn])
) piv
任何人都可以帮助获取列和行的总数吗?
【问题讨论】:
-
欢迎来到 StackOverflow:如果您发布代码、XML 或数据示例,请在文本编辑器中突出显示这些行并单击“代码示例”按钮 (
{ }) 在编辑器工具栏上以很好地格式化和语法突出显示它! -
此查询中
unpivot部分的用途是什么?当然,您可以只用select environment_name as " ", root_cause as value from test1替换整个子查询,不是吗? -
对不起,我的意思是你可以这样重写它。
标签: sql sql-server-2008 pivot