使用pivot重新排列sql表中的数据

sam*_*dam 2 sql-server

我有数据:

2014-10-28  Excess   1025   98297654999.82
2014-10-29  Excess   251    1902171582.07
2014-10-28  Pastdue  1590   7645464003.17
2014-10-29  Pastdue  13       3704776.10
Run Code Online (Sandbox Code Playgroud)

我需要这样的数据:

Date       ExcessCount  ExcessAmt   PassCount   PassAmt
28/10/2015  1025       98297655000     1590     7645464003
29/10/2015  251        1902171582      13       3704776.1
Run Code Online (Sandbox Code Playgroud)

请让我知道如何做到这一点.

Pra*_*ukh 5

看一下这个

SELECT column1 as date, SUM(ExcessCount) as ExcessCount, SUM(ExcessAmt) as ExcessAmt, SUM(PastdueCount) as PastdueCount, SUM(PastdueAmt) as PastdueAmt
FROM 
(
  select column1,column3,column4, column2+'Count' as tempcol1,column2+'Amt' as tempcol2
  from tablename
) x
pivot
(
  min(column3)
  for tempcol1 in ([ExcessCount], [PastdueCount])
) p
pivot
(
  min(column4)
  for tempcol2 in ([ExcessAmt], [PastdueAmt])
) q
group by column1
Run Code Online (Sandbox Code Playgroud)

将主表列名称放在column1,Column2,Column3,Column4

FYI ..

在此输入图像描述