2011-07-13 119 views
0

我从一个sql表中获取这些数据,但不知道如何将其放入下面的表结构中。将数据转换为该结构的最佳方法是什么?如何将行数据转换为列?

2011/07/13 Wednesday 10:00 1  
2011/07/13 Wednesday 10:30 1  
2011/07/13 Wednesday 11:00 0 
... 
2011/07/15 Friday  10:00 1  
2011/07/15 Friday  10:30 0  
2011/07/15 Friday  11:00 0  
2011/07/15 Friday  11:30 1 
... 
2011/07/16 Saturday 09:00 0  
2011/07/16 Saturday 09:30 1  
2011/07/16 Saturday 10:00 1 
...  
2011/07/17 Sunday  10:00 1  
2011/07/17 Sunday  10:30 0  
2011/07/17 Sunday  11:00 0  
2011/07/17 Sunday  11:30 1 
...   

enter image description here

回答

1

如果您的RDBMS不支持旋转,你可以做这样的事情:

SELECT 
    TIME, 
    (SELECT FLAG FROM SCHED S WHERE DATE = '7/13/2011' AND TIME = SCHED.TIME) AS [7/13/2011], 
    (SELECT FLAG FROM SCHED S WHERE DATE = '7/14/2011' AND TIME = SCHED.TIME) AS [7/14/2011] 
    ... other date columns ... 
FROM    
    SCHED 

这是假设你的表有这样的结构:

CREATE TABLE SCHED 
(
    [DATE] date, 
    TIME char(5), 
    FLAG tinyint 
) 

而且你可能想使用的日期/时间函数来计算相对于当前日期的日期在你的子查询,而不是将它们硬编码像我有,但你得到的想法:-)