2015-01-07 6 views
1

Я пытаюсь получить доступ в первый раз, и я пытаюсь понять, как реально использовать удивительную силу доступа.Как найти среднее значение в Access?

С этим я хочу найти среднее количество каждого элемента, но не знаю, как это сделать. Я создал 2 таблицы. Один из них - список предметов (песок, вода и т. Д.), А затем установил связь с другой таблицей, в которой указаны количества и цена.

Ниже, Query 1 Я настроил и отсортировал его (я не знаю, почему это не алфавит, даже если я сортировал восхождение, но не потому, что я здесь). Так может ли кто-нибудь помочь мне попробовать и выяснить, как усреднять количество предметов, как в Query 2? В конечном счете, я просто хочу, чтобы запрос нашел MaxAve и MinAve и просто показал те 2, как в Query 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   

Как я уже сказал, я очень новичок в доступе, и я просто пытаюсь разобраться. Если вы рекомендуете настроить запрос другим способом, я открываю что-либо на самом деле. Чем больше я учусь, тем лучше.

+0

http://office.microsoft.com/en-ca/training/queries-ii-limit-your-data-and-calculate-values- RZ001126949.aspx? Section = 14 –

+0

Так что все, что мне нужно сделать, это нажать кнопку Totals, а затем Total by Ave? Тогда как я могу сделать самый высокий и самый низкий Ave? –

+0

@GordThompson? –

ответ

1

Чтобы получить среднее значение для каждого имя_поля, просто сделать это в запросе:

SELECT FieldName, Avg(FieldNum) as AvgQty 
FROM MyTable 
GROUP BY FieldName 
ORDER BY FieldName 

Это также будет сортировать столбец FIELDNAME для вас.

EDIT: Я думаю, что вы можете делать то, что вы просили в своем комментарии, но вам потребуется отдельный запрос на основе выше. Для этого вам понадобится запрос 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 

Я делаю это с верхней части головы, поэтому это может быть не идеально.

Что касается форматирования поля, сделайте google на «VBA Format Number», и вы сможете найти несколько примеров. Я думаю, что это может сделать выше смотреть запрос что-то вроде:

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 
+0

Это почти идеально. Теперь, когда он отсортирован по средним значениям, мы можем отформатировать его так, чтобы он не сказал «3.433333333333333 ...». Кроме того, можно ли фильтровать его так, чтобы он отображал только Макс и Мин? –

+0

@RobertAnthonySvec - Смотрите мое изменение выше –

Смежные вопросы