2016-12-01 6 views
0

私はテーブルのデータベースを持っていますが、それぞれ2つの列があり、最初はコード、2番目は量です。テーブルは、毎日作成されたデータから引き出されます。その日付の外部イベントによってトリガされたコードは、特定の日付のデータを持ちます。例えば、vba/sqlを介したAccessでの複数のテーブルの結合

Code 2015-10-02 
1  321.23 
2  3442.13 
3  679.2 
4  6201.4 

各テーブルには同じ最初の列(コード)がありますが、コードは毎日変わります。ある日は、他の前日よりも異なるコードがトリガされることがあります(最初にトリガされたことがある)か、前日にトリガされた可能性がありますが、金額は異なります。私はすべてのテーブルを結合する可能性が知っているが、私は同様にすべての新しいコードに追加し、コードがありませんでした前の日のそれぞれについて、0を仮定したい

Code 2015-10-02 2015-10-03 2015-10-04 .... 
1 321.23  0   0   
2 3442.13 0   10.42 
3 679.2  41.2  0 
4 294.12  41.31  1042.12 
5 0   0   371.14 
. 
. 

:私が作成するテーブルは次のようになりますに誘発した。 これをVBA/SQL経由で簡単に行う方法はありますか?

ありがとう。

+0

vbaコードを実行するたびに列が追加されますか? – Kelaref

+0

ええ、テーブルの列に対応する列が私は結合しています。基本的には、個々のテーブルを2dテーブルに変換しています。最初のカラムは、その期間にトリガされたすべてのコードと、その後のカラム(日付に対応する名前を持つ)で構成され、各日の「金額」で構成されます。 – naiminp

+1

アクセスはリレーショナルデータベースであり、それを使用するとテーブルのデザインルールに従うことになっています。 Webで「データベース正規化」(最終的に正規化)を検索します。日付を含むようにデータベースを再設計する必要があります – Kelaref

答えて

3

Nooo。これはデータベースの仕組みではありません。

あなたはこのように、3列のテーブルが必要になります。

+------+------------+---------+ 
| Code | Date | Amount | 
+------+------------+---------+ 
| 1 | 2015-10-02 | 321.23 | 
| 2 | 2015-10-02 | 3442.13 | 
| 3 | 2015-10-02 | 679.2 | 
| 4 | 2015-10-02 | 6201.4 | 
| 3 | 2015-10-03 | 41.2 | 
+------+------------+---------+ 

コード+日付が主キーです。

次に、クロス集計クエリ(ウィザードを使用)で、コードと日付のマトリックスを取得できます。

+0

私は皆さんの言うことを理解しているので、カラムの見出しではなくフィールドとして日付を含むようにテーブルのフォーマットを変更しました。クロス集計のアイデアはありがたいことですが、それは治療のように機能します。 – naiminp

+0

最初の構成が悪いことにお詫び申し上げます。 – naiminp

+0

私はhttp://www.nooooooooooooooo.com/をリンクすることを検討しましたが、謝罪は必要ありません。 :)私たちはすべてここに学びます。喜んで解決策はあなたのために働く。 @naiminp – Andre

関連する問題