我是第一次尝试使用Access,而我正试图弄清楚如何真正利用Access的惊人功能。
有了这个,我想找到每个项目的平均数量,但不知道该怎么做。我设置了2个表。一个是项目清单(沙子,水等),然后与另一个表格建立关系,列出数量和价格。
下面,查询1我设置并对其进行排序(我不知道为什么它不是按字母顺序排列的,即使我按升序排序,但这不是我在这里的原因)。那么有人可以帮我尝试找出如何在查询2中平均每个项目的金额吗?最后,我真的只是希望查询找到MaxAve和MinAve,并在下面的查询3中显示这两个。
Query 1 Query 2 Query 3
fldName fldNum fldName fldAve fldName fldAve
Sand 4 Sand 4 Sand 4
Sand 4 Water 3.8 Computer 3.35
Water 3.7 Soda 3.43
Water 4 Computer 3.35
Water 3.7 Phone 3.43
Soda 3.7 Pencil 3.75
Soda 3.3
Soda 3.3
Computer 3.7
Computer 3
Phone 3
Phone 3.3
Phone 4
Pencil 4
Pencil 4
Pencil 3
就像我说的那样,我对Access非常陌生,而我只是在努力解决问题。如果你建议以不同的方式设置查询我真正打开任何东西。我学得越多越好。
答案 0 :(得分:1)
要获取每个字段名称的平均值,只需在查询中执行此操作:
SELECT FieldName, Avg(FieldNum) as AvgQty
FROM MyTable
GROUP BY FieldName
ORDER BY FieldName
这也将为您排序fieldname列。
修改强>: 我认为你可以在你的评论中做你要求的,但你需要一个基于上面的单独查询。您需要UNION查询才能执行此操作。类似的东西:
SELECT Top 1 FieldName, AvgQty
FROM Query1
ORDER BY AvgQty ASC
UNION ALL
SELECT Top 1 FieldName, AvgQty
FROM Query1
ORDER BY AvgQty DESC
我做到了这一点,所以它可能并不完美。
至于格式化字段,请在" VBA格式编号"上进行谷歌搜索。你应该能够找到一些例子。我认为这可能使上述查询看起来像:
SELECT Top 1 FieldName, Format(AvgQty, "##.#") as AvgQty1
FROM Query1
ORDER BY AvgQty ASC
UNION ALL
SELECT Top 1 FieldName, Format(AvgQty, "##.#") as AvgQty1
FROM Query1
ORDER BY AvgQty DESC