2017-03-25 8 views
-1

私は次のようなテーブルデータを持っています:IDに基づいて1列から複数の列を生成... ADOを使用してVBAにアクセス

ID |日付| TIME

1 | 01/12 | 01:00

1 | 01/12 | 02:00

1 | 02/12 | 03:00

2 | 01/12 |フィールド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 | 4時

は、ADOを使用して、あなたがデータを「非正規化」「ピボット」またはしたい

+0

04:00はどこから来たのですか? – Gustav

+0

このように質問すると答えが得られません。不十分な問題については「この質問は重大です」を使用しないでください。不十分な努力で解決できない問題に時間を費やすことに怒りを覚えさせますあなたの質問の構成に入れたものです。これとは対照的に、適切にフォーマットされ、明示的に定義され、明確な方法で提起されるべきです。 – Lu4

答えて

0

ループ好みます。 CROSSTABはヘッダーTime1、Time2などを生成しません。これは、各ID /日付グループのシーケンスIDを持つ別のフィールドを必要とするためです。列ヘッダーとして時刻を使用するCROSSTABを実行できます。これは、時間ごとに1つの列を生成するために、時間ごとに少なくとも1つのレコードが存在することを前提としています。また、あなたの例に示されているように、すべての時間が1時間であると仮定します。

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の予約語です。

関連する問題