【发布时间】:2014-10-05 20:34:15
【问题描述】:
我的数据如下:-
Color表:-
Id | Red | Green | Blue | PersonId | MonthId
1 22 53 4 1 1
2 52 213 100 3 2
3 2 32 44 2 3
4 72 143 4 1 2 ......
Month 表:-
Id | Name
1 January
2 February
3 March
4 April
5 May ....
Person 表:-
Id | Name
1 Greg
2 John
3 Gorge ...
我需要制作:-
Name | January | February | March | April | May
Greg 22
Greg 53
Greg 4
Greg 72 ....
John ....
我尝试了以下 case 语句,但我无法获得多种颜色
select p.Name,
(case when m.Name = 'January' then Red) January
from Person p, Month m, Color c where c.PersonId = p.Id and c.MonthId = m.Id
我需要在所有月份都获得Red, Green and Blue
Pivot 似乎有点太难了。如果有人有任何建议,我很乐意尝试一下。
数据表示可能不是 100% 正确,我只是想出它来说明我的观点。
【问题讨论】:
-
使用 c# 超出了可能性范围?
-
我不想这么说,但由于您的结果集(列)是动态的,也许您需要编写 SQL 来创建和执行动态 SQL
-
我该怎么做呢?另外,现在我也对 C# 解决方案持开放态度
标签: sql-server tsql pivot case pivot-table