|
▼小僧 さん:
ありがとうございます
>SQLを見る限りですが
>T単価テーブルとの左外部結合を行っているだけなので
>結果は必ずT単価テーブルのレコード数と一致しなければいけないですよね。
ですね
ご指摘を受けて下記確認してみました
仕様1-7をはずしたクエリでは
SELECT T単価.*
FROM ((T単価
LEFT JOIN LT部位
ON T単価.部C = LT部位.部C)
LEFT JOIN LT単位
ON T単価.単位C = LT単位.単位C)
LEFT JOIN LT名
ON T単価.区C = LT名.区C
AND T単価.工種1C=LT名.工種1C
AND T単価.工種2C=LT名.工種2C
AND T単価.工種3C=LT名.工種3C;
必ず117820件となります
>クエリの中でクエリを呼び出している箇所があるので
>そちらを纏めてみたら結果はどうなりますでしょうか。
ん〜
そんなことが出来るのですか
そのまま試してみましたが
FROM 句の構文エラーです。
>>アクセス一応使えるつもりです
なんて書いてしまいましたが、SQLもたまに見るぐらいで低レベルです
SQLビューで仕様を1づつ追加して試してみました
(ご提示頂いたSQLと同じですが・・・・)
仕様を1つ左外部結合してみました
SELECT T単価.*
FROM (((T単価
LEFT JOIN LT部位
ON T単価.部C = LT部位.部C)
LEFT JOIN LT単位
ON T単価.単位C = LT単位.単位C)
LEFT JOIN LT名
ON T単価.区C = LT名.区C
AND T単価.工種1C=LT名.工種1C
AND T単価.工種2C=LT名.工種2C
AND T単価.工種3C=LT名.工種3C)
LEFT JOIN LT仕様
ON T単価.工種1C=LT仕様.工種C
AND T単価.仕様C1+1000=LT仕様.仕区C*1000+LT仕様.仕様C;
動作できましたが
レコード件数は、
117819件
117820件
とかになります
仕様を2つ左外部結合してみました
SELECT T単価.*
FROM ((((T単価
LEFT JOIN LT部位
ON T単価.部C = LT部位.部C)
LEFT JOIN LT単位
ON T単価.単位C = LT単位.単位C)
LEFT JOIN LT名
ON T単価.区C = LT名.区C
AND T単価.工種1C=LT名.工種1C
AND T単価.工種2C=LT名.工種2C
AND T単価.工種3C=LT名.工種3C)
LEFT JOIN LT仕様 AS T1
ON T単価.仕様C1+1000=T1.仕区C*1000+T1.仕様C
AND T単価.工種1C=T1.工種C)
LEFT JOIN LT仕様 AS T2
ON T単価.仕様C2+2000=T2.仕区C*1000+T2.仕様C
AND T単価.工種1C=T2.工種C;
動作できました
レコード件数はやはり
117819件
117820件
とかになります
>そんなことが出来るのですか
ただ、デザインビューにすると
デザイン ビューで、連結式 T単価.仕様C1+1000=T1.仕区C*1000+T1.仕様C を表示できません。
と怒られてしまいましたが
クエリを使ったクエリよりもこちらのすっきりしてよさげな気がします
1歩前進できました ご教授ありがとうございました
117819件
117820件
ですが
よくわかりませんが、CPUのせいではないような気はしますが・・・・
ちなみに
Intel(R) Core(TM)2 Duo CPU
E4400 @ 2.00GHz
1.99 GHz、0.99 GB RAM
で、クエリ表示後最終レコードに移行すると7秒ぐらいかかります
ふと、クエリ結果件数が毎度異なるなんて
バグぽっい動きみたいな気もしなくは無いですが、どうなんでしょう・・・・
場合によっては
敷居が高いけど今回は SQL Server Express Edition + ADP にしようかな・・・
とりとめのない書き込みになってしまいましたが
アドバイスありましたらよろしくお願いいたします
|
|