0

我有桌子MailSummary

列:

Send(Int), Reply(Int), SRT(Nvarchar(10)), NAME(Nvarchar(10))

|Send| Reply| SRT| Name|
------------------------
| 100|     8|  10|    B|
|  30|     2|  20|    R|
|   5|     0|  30|    S|
-----------------------

我想转换表格并获得一个新的结果集,例如:

Sum(Send), Sum(Reply) 

并在新列下显示列中的名称和 SRT 的值

|Send| Reply| B | R | S |
-------------------------
| 135|    10| 10| 20| 30|

如何在 SQL 查询中执行此操作?

4

1 回答 1

1

这适用于您的场景:

SELECT SUM(Send) as Send,
       SUM(Reply) as Reply,
       MIN(CASE WHEN Name = 'B' THEN SRT END) AS B,
       MIN(CASE WHEN Name = 'R' THEN SRT END) AS R,
       MIN(CASE WHEN Name = 'S' THEN SRT END) AS S
FROM   TEST 

尽管对于更动态的查询,您将需要一个动态交叉表查询

小提琴示例:http ://sqlfiddle.com/#!3/d0ddc/12

于 2013-06-22T10:28:19.240 回答