koo*_*e98 1 t-sql sql-server sql-server-2008
我有程序从各种来源拉取数据给我3个非常类似的表.
Metric | Tickets |Band
______________________________________
Acknowledgement | 45 | New
Acknowledgement | 23 | Within
Acknowledgement | 16 | Near
Acknowledgement | 2 | Very Near
Run Code Online (Sandbox Code Playgroud)
和
Metric | Tickets |Band
___________________________________
Escalation | 10 | New
Escalation | 43 | Within
Escalation | 81 | Near
Escalation | 6 | Very Near
Run Code Online (Sandbox Code Playgroud)
和
Metric| Tickets |Band
___________________________________
Fixed | 34 | New
Fixed | 52 | Within
Fixed | 36 | Near
Fixed | 4 | Very Near
Run Code Online (Sandbox Code Playgroud)
现在,我想以某种方式将它们组合在一起,以便像这样有一个表输出
Metric | New | Within | Near | Very Near
_____________________________________________________
Acknowledgement | 45 | 23 | 16 | 2
Escalation | 10 | 43 | 81 | 6
Fixed | 34 | 52 | 36 | 4
Run Code Online (Sandbox Code Playgroud)
我怎样才能在MS SQLServer中实现这一点呢?
这不需要为每个表重复所有聚合和CASE表达式 - 只需要一个简单的联合,然后你可以转向它.
SELECT Metric, [New], [Within], [Near], [Very Near] FROM
(
SELECT Metric, Tickets, Band FROM dbo.table_a
UNION ALL SELECT Metric, Tickets, Band FROM dbo.table_b
UNION ALL SELECT Metric, Tickets, Band FROM dbo.table_c
)
AS x PIVOT
(
MAX(Tickets) FOR Band IN ([New],[Within],[Near],[Very Near])
) AS p;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |