求sql语句
表
姓名 年度 月份
a 2007 3
a 2007 5
a 2007 6
B 2006 1
B 2007 3
B 2007 5
结果(2007)
姓名 次数 1月 2 3 4 5 6 7 8 9 10 11 12
a 3 v v v
b 2 v v
------解决方案--------------------Select
姓名,
Count(*) As 次数,
Max(Case 月份 When 1 Then 'v ' Else ' ' End) As [1月],
Max(Case 月份 When 2 Then 'v ' Else ' ' End) As [2月],
Max(Case 月份 When 3 Then 'v ' Else ' ' End) As [3月],
Max(Case 月份 When 4 Then 'v ' Else ' ' End) As [4月],
Max(Case 月份 When 5 Then 'v ' Else ' ' End) As [5月],
Max(Case 月份 When 6 Then 'v ' Else ' ' End) As [6月],
Max(Case 月份 When 7 Then 'v ' Else ' ' End) As [7月],
Max(Case 月份 When 8 Then 'v ' Else ' ' End) As [8月],
Max(Case 月份 When 9 Then 'v ' Else ' ' End) As [9月],
Max(Case 月份 When 10 Then 'v ' Else ' ' End) As [10月],
Max(Case 月份 When 11 Then 'v ' Else ' ' End) As [11月],
Max(Case 月份 When 12 Then 'v ' Else ' ' End) As [12月]
From TableName
Where 年度 = 2007
Group By 姓名
------解决方案--------------------Create Table TEST
(姓名 Varchar(10),
年度 Int,
月份 Int)
Insert TEST Select 'a ', 2007, 3
Union All Select 'a ', 2007, 5
Union All Select 'a ', 2007, 6
Union All Select 'B ', 2006, 1
Union All Select 'B ', 2007, 3
Union All Select 'B ', 2007, 5
GO
Select
姓名,
Count(*) As 次数,
Max(Case 月份 When 1 Then 'v ' Else ' ' End) As [1月],
Max(Case 月份 When 2 Then 'v ' Else ' ' End) As [2月],
Max(Case 月份 When 3 Then 'v ' Else ' ' End) As [3月],
Max(Case 月份 When 4 Then 'v ' Else ' ' End) As [4月],
Max(Case 月份 When 5 Then 'v ' Else ' ' End) As [5月],
Max(Case 月份 When 6 Then 'v ' Else ' ' End) As [6月],
Max(Case 月份 When 7 Then 'v ' Else ' ' End) As [7月],
Max(Case 月份 When 8 Then 'v ' Else ' ' End) As [8月],
Max(Case 月份 When 9 Then 'v ' Else ' ' End) As [9月],
Max(Case 月份 When 10 Then 'v ' Else ' ' End) As [10月],
Max(Case 月份 When 11 Then 'v ' Else ' ' End) As [11月],
Max(Case 月份 When 12 Then 'v