0

現在、関連する 2 つのテーブルがあります。

Property
    ID
    Name

Checks
    ID
    Property
    Type
    ExpiresOn

テーブル内のプロパティ フィールドは、Checksテーブル内の ID を参照しPropertyます。

チェックにはさまざまな種類がありますが、この例では、ガスと電気に固執します。したがって、典型的なChecksテーブルは次のようになります。

ID    Property    Type        ExpiresOn
----------------------------------------
1        1        Gas         20/07/13
2        1        Gas         21/07/13
3        1        Electric    22/07/13
4        2        Electric    23/07/13

ここで私がやりたいのは、プロパティを表示することです。列には各タイプの最後のチェックが表示されます。例えば:

ID    Property.Name    GasExpiry      ElectricExpiry
--------------------------------------------------
1     Some Place       21/07/13 (2)   22/07/13  (3)
2     Another Place    null           23/07/13  (4)

ID何が起こっているのかを簡単に確認できるように、括弧内に各有効期限を含めました。ID 1のChecksレコードは、特定のプロパティのそのタイプの最後ではないため、表示されませんでした。

現在、結合でこれを行う適切な方法を見つけられなかった後、Dlookup を使用してこれを行っています。もちろん、Propertyより多くのレコードを取得すると、Dlookup はこのクエリを大幅に遅くし始めます。

この問題にアプローチするより良い方法はありますか?

4

2 に答える 2

0

探しているのは、実際にテーブルをピボットして、行が列になり、列が行になるようにすることです。

これを MS アクセス データベースとしてタグ付けしたので、このタスクを実行するためにオンラインで利用できる多くのチュートリアルを参照できます。

于 2013-07-16T17:59:57.370 に答える
0

通常、これを投稿した後に答えの瞬間を見つけましたが、他の誰かが同様の問題を抱えている場合に備えて、ここに残しておきます.

答えは、クロス集計クエリを実行することです。質問で説明されているとおりです。列の種類と各フィールドに表示する内容を指定します。

于 2013-07-16T18:49:40.950 に答える