У меня есть таблица, которая отслеживает письма, которые мы отправляем нашим клиентам.Мы также отслеживаем статус письма в этой таблице, и, в частности, мы хотим знать, сколько людей, которые получили письмо, согласились на повторное обращение.
Эта часть проста, но теперь меня спросилисгруппировать результаты по предварительно указанным неделям (т.е. неделя 1, неделя 2 и т. д.).Я использовал оператор switch для этой цели, но теперь, когда мы находимся на 20-й неделе или около того, MS Access говорит, что запрос слишком сложный.
Вот мой код - с оператором switch, упрощенным дляради краткости.У нас фактически есть недели 1-20 в самом операторе switch, и именно это заставляет Access не обрабатывать запрос.
SELECT Count([Letter Status].Patient_ID) AS CountOfPatient_ID, Switch([Date_Returned] Between #10/25/2011# And #10/31/2011#,"Week 1") AS Week
FROM [Letter Status]
WHERE ((([Letter Status].Letter_Status)="Agreed to be contacted"))
GROUP BY Switch([Date_Returned] Between #10/25/2011# And #10/31/2011#,"Week 1");
Поскольку оператор switch не работает, мне было интересно, было либолее логичный способ обработки результатов по неделям.Наше временное решение заключается в том, что я обрабатываю одну неделю за раз и добавляю результаты в отдельную таблицу.Тем не менее, я уверен, что это идет вразрез с нормализацией БД, и если есть лучший способ сделать это, я бы хотел узнать.
Пожалуйста, помогите.