Таблица средних значений по дате для нескольких идентификаторов

У меня есть таблица, полная элементов, каждый из которых имеет уникальный ItemID. Существует еще одна таблица с информацией о тестах, которые проводятся по этим предметам примерно раз в месяц (у некоторых может быть несколько тестов в месяц, а у некоторых может не быть ни одного в несколько месяцев), и каждая запись теста имеет полную дату mm/dd/yyyy. Я хотел бы отображать среднее значение одного из полей по всем данным ежемесячно. Итак, предполагая, что я усредняю ​​вес предмета, я хочу получить такую ​​​​таблицу:

Date AvgOfWeight  
1/09 24.55  
2/09 28.64  
3/09 22.39  

и так далее...

Я знаю, что могу выполнить запрос для получения средних значений и могу сгруппировать средние значения по определенным критериям, но есть ли простой способ сгруппировать mm/dd/yyyy дат по месяцам?


person Matt    schedule 15.10.2009    source источник


Ответы (1)


Мне нравится эта функция strzero, которую можно использовать вот так:

m_monthYear = strZero(year(date()),4) & "-" & strZero(month(date()),2)

Результаты выглядят как 2009-09 и могут быть упорядочены по возрастанию, так как они начинаются с года. Вам просто нужно создать эту функцию strZero следующим образом:

Public function strZero(x_myLong as long, x_length as integer) as string
Dim m_strZero as string

m_strZero = trim(str(x_myLong))
do while len(m_strZero) <= x_length
    m_strZero = "0" & m_strZero
loop
strZero = m_strZero
end function

Это было написано на лету. Пожалуйста, проверьте все параметры (если есть) для str, добавьте управление ошибками и адаптируйте к своим потребностям. Вы можете передать x_myLong как вариант, чтобы, например, вернуть строку «0000». Эта функция имеет множество других применений при преобразовании чисел в строки фиксированной длины.

person Philippe Grondier    schedule 15.10.2009
comment
Это в основном то, что я в итоге сделал. Я сделал все это в SQL, хотя. Я сгруппировал по году: год (дата), а затем по месяцу: месяц (дата), а затем для отображения я сделал выражение Year_Date: CStr (год) + / + CStr (месяц). Спасибо за помощь - person Matt; 16.10.2009