日期:2014-05-19  浏览次数:20577 次

关于表列更换为主轴的问题续
关于表列更换为主轴的问题续    
问题是这样的:    
表T1,字段有A,B,日期,     花费,   次数
 
 
A     B     日期     花费     次数
-----------------------------------------------    
1     配件     2006-12-16       2     1    
1     配件     2006-12-17       4     2
1     配件     2006-12-18       16   1    
1     配件     2006-12-19       2     1
1     配件     2006-12-20       16   1
2     主件     2006-12-16       4     2
2     主件     2006-12-17       3     3
2     主件     2006-12-18       5     4
2     主件     2006-12-19       0     0
2     主件     2006-12-20       4     1
3     副件1     2006-12-16     4     1
3     副件1     2006-12-17     3     1
7     副件5     2006-12-16     5     1
7     副件5     2006-12-18     4     1
 
 
现在的要求是:    
通过一个查询把日期添加到主轴,    
字段有A,B,统计方式,   日期1,日期2,日期3...     ,日期中存放的是花费.    
A       B       统计方式     2006-12-16     2006-12-17     2006-12-18     总计    
-----------------------
1     配件     花费             2     4     16   22    
                  次数             1     2     1     4
2     主件     花费             4     3     5     13    
                  次数             2     3     4     9
3     副件1   花费             4     3     0     7        
                  次数             1     1     0     2
7     副件5   花费             5     4     0     9    
                  次数             1     1     0     2
现在不知道这个查询怎么写,多谢大家了!

------解决方案--------------------
--如果日期是字符型
Declare @S1 Nvarchar(4000), @S2 Nvarchar(4000)
Select @S1 = N 'Select A, B, N ' '花费 ' ' As 统计方式 ', @S2 = N ' Union All Select A, B, N ' '次数 ' ' '
Select @S1 = @S1 + N ', SUM(Case 日期 When ' ' ' + 日期 + N ' ' ' Then 花费 Else 0 End) As [ ' + 日期 + '] ',
@S2 = @S2 + N ', SUM(Case 日期 When ' ' ' + 日期 + N ' ' ' Then 次数 Else 0 End) As [ ' + 日期 + '