我有一个像这样的表数据:
ID |日期|的 TIME
1 | 01/12 | 01:00
1 | 01/12 | 02:00
1 | 02/12 | 03:00
2 | 01/12 | 01:00
如何从列(时间)生成多个列以进行划分,如下面的结果,具体取决于字段ID,日期:
ID |日期| 时间1 | 时间2 | 时间3 |的时间4
1 | 01/12 | 01:00 | 02:00 | 03:00 | 04:00
1 | 02/12 | 01:00 | 02:00 | 03:00 | 04:00
2 | 01/12 | 01:00 | 02:00 | 03:00 | 04:00
更喜欢使用ado,循环
答案 0 :(得分:0)
您想要'透视'或'非规范化'数据。 CROSSTAB不会生成标题Time1,Time2等,因为这将需要另一个具有每个ID / Date组的序列标识符的字段。您可以执行将时间用作列标题的CROSSTAB。这假设每次至少有一条记录为每次生成一列。还假设所有时间都在小时,如示例所示。
TRANSFORM First(Table1.Time) AS FirstOfTime
SELECT Table1.ID, Table1.Date
FROM Table1
GROUP BY Table1.ID, Table1.Date
PIVOT Table1.Time;
审核Pivot the data from Rows to Column
日期是Access中的保留字,不应使用保留字作为任何名称。