プロが教える店舗&オフィスのセキュリティ対策術

商品の売上データ・仕入データが個別にあります。
商品には大中小の分類があり、各分類は2ケタのコードです。つまり、

(1)
大分類/中分類/小分類/仕入金額
01/02/05/1,000

という構成のデータと
(2)
大分類/中分類/小分類/売上金額
01/02/05/1,250


という構成のデータとがあるわけです。この2つをExcelデータで持ってて、データが大量なのでAccessに取り込み、最終的には

大分類/中分類/小分類/仕入金額/売上金額
01/02/05/1,000/1,250

というように、仕入金額と売上金額を一纏めにして表示したいのです。
ここで、上記(1)を仕入テーブル、(2)を売上テーブルとし、
SELECT 大分類,中分類,小分類,仕入金額,売上金額 FROM 仕入,売上
WHERE 仕入.大分類=売上.大分類
AND 仕入.中分類=売上.中分類
AND 仕入.小分類=売上.小分類


とクエリを作ってみたら、各テーブルのデータが数千件になっただけで、物凄くクエリの動きが遅くなりました。
大中小分類の一致を、WHEREでなくINNER JOINで記述してみても、遅くなります。
最初のテーブル作成からして、間違ってるでしょうか?いい案はないでしょうか?

A 回答 (1件)

インデックスを作成してみては?



テーブルのデザインビューで設定します。
大分類,中分類,小分類を一組で考えたときに重複が無いと思いますが
結合方法を拝見するに、大分類,中分類,小分類をそれぞれ別個のインデックスとし、
「重複あり」で作成してみてください。
    • good
    • 0
この回答へのお礼

まだ素人で、インデックスは良く分かってないんですが、使ってみます。便利そうですね。

お礼日時:2012/06/04 22:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!