2013-10-12 4 views
1

У меня есть таблица, в которой в качестве столбцов есть «месяцы», а «идентификатор клиента» - первичный ключ.как рассчитать отдельные средние значения для нескольких столбцов

Я хочу усреднить все значения для каждого месяца отдельно для значений, не равных 99999.

Моего текущего запроса на один месяц следующим образом и работают нормально:

SELECT Avg([Table1]![Dec10]) AS Expr1 
FROM Table1 
WHERE ((([Table1]![Dec10])<>99999); 

Однако, когда я пытаюсь добавить второй месяц, он объединяет условие первого месяца с условием 2-го месяца.

SELECT Avg([Table1]![Dec10) AS Expr1, Avg([Table1]![Dec11]) AS Expr2 
FROM Table1 
WHERE ((([Table1]![Dec10])<>99999) And ([Table1]![Dec11])<>99999); 

мне нужно иметь каждый месяц отдельно, т.е. вычислить среднее значение Dec10 <> 99999, а во втором столбце, вычислить среднее значение Dec11 <> 99999.

+0

Какую базу данных вы используете? –

ответ

0

Вам нужно использовать предложение Group By в вашем запросе, а затем вы можете отделить свой результат по месяцам.

0

В этом случае было бы удобно использовать GROUP BY.

Если у вас есть определенные значения месяца, например. «Jan10», «feb10», «mar12» и т.д. Вы можете сгруппировать на несколько месяцев, а затем проверить, что значения не 99999.

SELECT avg(value), months 
FROM tablename 
WHERE value <> 99999 
GROUP BY months 

То есть, если у вас есть месяцы, сохраненные в качестве литералов внутри столбца , но из вашего проекта базы данных это может быть сохранено другим способом?

0

мне нужно иметь каждый месяц отдельно, т.е. вычислить среднее значение Dec10 <> 99999, а во втором столбце, вычислить среднее значение Dec11 <> 99999.

В Access 2010, для [Table1] ...

CustomerID Dec10 Dec11 
---------- ----- ----- 
     1  1  5 
     2  2 99999 
     3 99999  0 
     4  3  7 

... запрос ...

SELECT 
    DAvg("Dec10", "Table1", "Dec10<>99999") AS AvgOfDec10, 
    DAvg("Dec11", "Table1", "Dec11<>99999") AS AvgOfDec11 
FROM (SELECT COUNT(*) AS n FROM Table1) 

... производит:

AvgOfDec10 AvgOfDec11 
---------- ---------- 
2   4   
Смежные вопросы