0

私は自分のデータベースを次のように設定しています:

私が持っている各製品には、販売数量/トランザクション番号を記録する独自のテーブルがあります (したがって、列 1 は「トランザクション ID」、列 2 は「数量」です)。

例)p-backScratcher(p-は「製品」を表します)

通過した各取引の記録を保持する各年のテーブルもあります。これらの各テーブルには、「transactionID」、「date」、「time」、「pt_CA」、「pt_DB」、「pt_VC」、「pt_MC」、「pt_CH」、「pt_AM」の列があります。

ex) sales-2008、sales-2009 など

テーブルの sql を変更して新しい年を含めることなく、各年のすべてのレコードを保持する単一のテーブルを参照できるようにしたいと考えています。

たとえば、「p-backScratcher」のすべてのトランザクションをクエリしたいのですが、入力する必要はありません

SELECT sales-2008.date, sales-2009.date 
  FROM sales-2008, sales-2009 
 WHERE sales-2008.transactionID = p-backScratcher.transactionID 
    OR sales-2009.transactionID = p-backScratcher.transactionID

...むしろ:

SELECT sales.date 
  FROM sales 
 WHERE sales.transactionID = p-backScratcher.transactionID
4

4 に答える 4

4

SQL では、Kyle の回答が述べているように、仮想テーブルの一種であるViewを作成できますが、データベース構造にコミットする前に 、書籍または Google のRelational database designを入手することを強くお勧めします。

于 2009-12-18T16:50:35.197 に答える
2

テーブルの sql を変更して新しい年を含めることなく、各年のすべてのレコードを保持する単一のテーブルを参照できるようにしたいと考えています。

これが、製品ごとに 1 つのテーブルを使用したり、1 年に 1 つのテーブルを使用したりしない理由です。

必要なのは、1 つの "Product" テーブルと 1 つの "Transaction" テーブルです。

于 2009-12-18T16:52:58.247 に答える
1

あなたが探しているのは「ビュー」と呼ばれ、適切にフォーマットされた結果のリストである保存されたステートメントです。テーブルのように直接クエリできます。

于 2009-12-18T16:48:10.913 に答える
-2

このプロジェクトの規模や特定の要件(たとえば、コードが関連付けられている場合)はわかりませんが、データをMS SQL(またはMySQLなど)に移行することを検討することをお勧めします。SQL Serverには、無料のデスクトップエディションがありますが、サポートされる機能セットは限られています(ビューはそれに含まれています)。

MySQL、PostGreなどは、PostGreの継承されたテーブル(正確には必要なものではありませんが類似しています)など、探している機能をサポートしています。

私はしばらくAccessを使用していませんが、お探しの機能をサポートできるかどうかはわかりません。

于 2009-12-18T17:02:05.763 に答える