2010-08-19 51 views
4

我有了DateTime,类型的列的表的日子,我想,这样的日期显示为列(如每周一天的日期时间列转动,星期二等)。在SQL Server中使用透视显示日期作为一周

因此,例如,我有这样一个表(不记得Server如何SQL显示完整日期时间,但你的想法):

BugNo | DateOpened | TimeSpent 

1234 | 16/08/2010 | 1.0 
4321 | 16/08/2010 | 3.5 
9876 | 17/08/2010 | 1.5 
6789 | 18/08/2010 | 7.0 
6789 | 19/08/2010 | 6.5 
6789 | 20/08/2010 | 2.5 

我想转动的DateOpened列创建这样的结果集

|TimeSpentOnBugByDay| Mon | Tue | Wed | Thu | Fri | Sat | Sun 
1234     1 
4321     3.5 
9876       1.5 
6789         7.0 
6789           6.5 
6789            2.5 

我应该指出,我一次只能检索一周。

我不知道这是可能的,但我敢肯定,我已经看到了(我没有写)之前是这样的。

+1

为什么不看标记为“SQL服务器”和“转动”的其他问题? – 2010-08-19 22:02:58

+0

嗨,我做了尝试,但找不到这个具体我也能得到我从其他的例子所需要的。为 – bplus 2010-08-23 07:26:26

回答

4

你可以做到这一点

SELECT BugNo, [Monday], [Tuesday], [Wednesday], [Thursday], [Friday], [Saturday], [Sunday] 
FROM (
    SELECT BugNo, DATENAME(dw, DateOpened) AS DayWeek, TimeSpent 
    FROM Bugs 
    ) AS src 
    pivot (
     SUM(TimeSpent) FOR DayWeek IN ([Monday], [Tuesday], [Wednesday], [Thursday], [Friday], [Saturday], [Sunday]) 
    ) AS pvt 
+0

谢谢,这正是我一直在寻找。 – bplus 2010-08-23 07:25:02

相关问题