- 締切済み
ACCESS97で、テーブルリンクを使用すると結果がおかしくなります
こんにちわ、ご教授よろしくお願いします。 win2000 Office97を使用しています。 ACCESS97でテーブルリンクでデータを抽出して、 クエリーを走らせた場合と、 リンクを一度テーブルに落としてから、 クエリーを走らせた場合とでデータ件数がちがってきてしまいます。 正しい結果は一度テーブルに落としてから、クエリーを走らせた場合が正しい結果が出ました。 97でテーブルリンクを使用する際に なにか注意しなければならないことがあるのでしょうか? 一々、テーブルに落としてからクエリーを走らすにはかなりの数があるので、 できれば、テーブルリンクを使用してクエリーを走らせたいのです。 わかりずらい説明ですが、ぜひとも ご教授お願いします!><
- みんなの回答 (5)
- 専門家の回答
みんなの回答
#2です。ご提示頂いたSQL文を見る限りでは余りお役に立てそうもありません。以下、私がデバッグするならということも含めて 1.リレーションを取らないで SQSBR_SUM_NT_SHINZAI_F.SHIN_HINBANとsinzaiの件数を比較するとどうなるか 2.二つのSQL文でSHIN_JITUZAISUとSHIN_EZAIFが異なっているが、同じにしたらどうか 3.SQLを単純化してSELECT SQSBR_SUM_NT_SHINZAI_F.SHIN_HINBAN, げんか.HINBAN FROM SQSBR_SUM_NT_SHINZAI_F INNER JOIN げんか ON SQSBR_SUM_NT_SHINZAI_F.SHIN_HINBAN = げんか.HINBAN; のように(どちらも直して)でどうか 4.多い方と少ない方の差分をSELECT クエリ1.SHIN_HINBAN, クエリ2.SHIN_HINBAN FROM クエリ1 LEFT JOIN クエリ2 ON クエリ1.SHIN_HINBAN = クエリ2.SHIN_HINBAN WHERE (((クエリ2.SHIN_HINBAN) Is Null));のように抽出して、何らかの規則性はないか この方法で問題解決に近付く自信はありません。あくまでも私であればこのようにするということで、ご参考までに(^^;
- taka_tetsu
- ベストアンサー率65% (1020/1553)
>下のほうにレコード数が表示されますので >そこで確認しました。 リンクテーブルのほうのクエリー、一度最終レコードまで移動させました? あと、 select count(*) from クエリー名; このSQLの選択クエリーを新たに作って実行するとどうなりますか? これで各クエリーで取得された件数を確認してみてください。 これで件数が違うようですと問題なんですが。 また、取得したデータはどのようにこのあと加工して利用するのでしょうか? 「コピーしてExcelに貼り付ける」とか、「CSVでエクスポートする」とかいうレベルでかまわないんで。 ちなみに、リンクテーブルのリンク先のDBは名前からしてSQLServerですか?
- taka_tetsu
- ベストアンサー率65% (1020/1553)
あのう、データの取得ではなく『件数の取得方法』を確認したかったんですが。
問題のクエリーをSQL文として提示できないでしょうか?
補足
SQL文は下記のとおりです。 ●テーブルリンクのとき SELECT SQSBR_SUM_NT_SHINZAI_F.SHIN_HINBAN, SQSBR_SUM_NT_SHINZAI_F.SHIN_EZAIF FROM SQSBR_SUM_NT_SHINZAI_F INNER JOIN げんか ON SQSBR_SUM_NT_SHINZAI_F.SHIN_HINBAN = げんか.HINBAN; ●テーブルのとき SELECT sinzai.SHIN_HINBAN, sinzai.SHIN_JITUZAISU FROM げんか INNER JOIN sinzai ON げんか.HINBAN = sinzai.SHIN_HINBAN; リレーションシップは 両方のテーブルの結合フィールドが同じ行だけを含めるです。 よろしくおねがいします
- taka_tetsu
- ベストアンサー率65% (1020/1553)
それぞれのデータ件数はどのように取得していますか?
補足
ご回答ありがとうございます。 補足をさせていただきます。 データの取得ですが、 別のテーブルに抽出したい品番テーブルというのがあります。 その品番テーブルと同じ品番のデータを引っ張るだけのクエリーで抽出条件等は他にはありません。 これがテーブルリンクでデータを引っ張ってくると データが少ないんです。 リンクしたデータを一旦テーブルに落としてから クエリーを走らすと、ちゃんと全部ひっぱってこれます。 マイクロソフトのサイトもみたのですが、 わかりませんでした。。 よろしくお願いします><
補足
申し訳ありません^^; 件数はクエリーを実行したら 下のほうにレコード数が表示されますので そこで確認しました。 よろしくお願いします。