0

以下のコードは、複数のテーブルから1つの列のカウントと、他の2つの列の平均を取得し、その結果を別のテーブルに配置するために使用しようとしているものです。
これでうまくいくと思いましたが、新しいテーブルに入れられているカウントは平均と同様に正しくありません。多くの場合、平均は平均されている数値の範囲外です。平均化されている数値はすべて負であり、それらのほとんどには小数が含まれています。列のデータ型はに設定されNumber、平均化される数値(ソースと宛先)のフィールドサイズはに設定されDoubleます。


コード:

    For i = 1000 To 1783   
    strQuery1 = "Insert Into MIUsInGridAvgs (NumberofMIUs, ProjRSSI, RealRSSI)  " & _
                "Select  Count(MIUID), Avg(ProjRSSI), Avg(RealRSSI) " & _
                "From MIUsInGrid" & i & " "
                
    
    DoCmd.SetWarnings False  
    DoCmd.RunSQL strQuery1  
    DoCmd.SetWarnings True

    Next

私がクエリしているテーブル名は、1000から1783までの数字で終わります。


データ例:

MIUsInGrid1000

    MIUID緯度経度ProjRSSIRealRSSI
    110108098 32.593021 -85.367073 -97.4625 -108

MIUsInGrid1001

    MIUID緯度経度ProjRSSIRealRSSI
    110112556 32.592461 -85.337067 -101 -95
    110106208 32.592766 -85.337059 -101-100
    110115010 32.59288 -85.337189 -101 -98

MIUsInGrid1002

    MIUID緯度経度ProjRSSIRealRSSI
    110172260 32.593349 -85.366318 -104.408333333333 -99
    110106870 32.593464 -85.365822 -104.408333333333 -106

結果:

    NumberofMIUs ProjRSSI RealRSSI
    1 -97.4625 -108'MIUsInGrid1000
    1 -100.883333333333 -109'MIUsInGrid1001
    1 -109.521428571429 -99'MIUsInGrid1002

私は何が間違っているのですか?

4

3 に答える 3

1

AVG()グループ機能を使用するには、何かでグループ化する必要はありませんか?

変数にはどのような値がi含まれていますか?

于 2009-07-01T19:59:21.800 に答える
1

関連するデータ型は何ですか?MIUsInGrid###との列の種類は何MIUsInGridAvgsですか?

平均や他の行なしでテーブルをリストするときに、テーブルにデータが入力されていることを確認しますか?

クエリを一度に1つずつ手動で実行するとどうなりますか?

于 2009-07-01T20:47:14.717 に答える
0

答えは見つかりましたが、よくわかりません。列NumberofMIUsでは、「Indexed」プロパティが「」に設定されていましたYes (Duplicates OK)。設定を「No」に変更すると、クエリは正常に機能しました。

于 2009-07-01T20:56:43.620 に答える