0

下面的代码是我试图使用的,以便从多个表中获取一列的计数和另外两列的平均值,然后将结果放入另一个表中。
我认为这会起作用,但是放入新表的计数与平均值一样不正确。很多时候,平均值超出了平均数字的范围。被平均的数字都是负数,其中大部分包含小数。列的数据类型设置为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

    MIUD 纬度经度 ProjRSSI RealRSSI
    110108098 32.593021 -85.367073 -97.4625 -108

MIUsInGrid1001

    MIUD 纬度经度 ProjRSSI RealRSSI
    110112556 32.592461 -85.337067 -101 -95
    110106208 32.592766 -85.337059 -101 -100
    110115010 32.59288 -85.337189 -101 -98

MIUsInGrid1002

    MIUD 纬度经度 ProjRSSI RealRSSI
    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什么?

您确定表格已填充,因为您列出它们时没有平均值或其他行?

如果您一次手动运行一个查询会发生什么?

于 2009-07-01T20:47:14.717 回答
0

我找到了答案,但我真的不明白。NumberofMIUs列的“ Indexed”属性设置为“ Yes (Duplicates OK)”。当我将设置更改为“ No”时,查询工作正常。

于 2009-07-01T20:56:43.620 回答