2015-09-24 7 views
0

Я пытаюсь создать SQL-запрос, который возвращает частоту каждого месяца, появляющуюся в моей таблице (в процентной форме).MS Access SQL: группировка по месяцам

SQL, я написал, чтобы начать это следующее:

SELECT Format(Sum(IIf(Sale_PickupDateTime="*/01/*",1,0))/Count(Sale_PickupDateTime), "Percent") AS January 
FROM [Sales Table]; 

Я планирую продолжать и далее за каждый месяц.

Моя проблема заключается в том, что, когда я пытаюсь запустить этот код, я получаю следующее сообщение об ошибке: «Тип данных Несовпадение в Criteria Выражение»

Я довольно уверен, что это происходит потому, что sale_pickupdatetime является общий формат даты, потому что я использовал этот код в другом месте (Sale_reason это текстовое поле):

SELECT Format(Sum(IIf(Sale_Reason="Business",1,0))/Count(Sale_Reason), "Percent") AS Business 
FROM [Sales Table]; 

и она работала отлично.

ответ

1

AFAIK Access поддерживает MONTH функцию:

SELECT 
    Format(Sum(IIf(MONTH(Sale_PickupDateTime)=1,1,0))/Count(Sale_PickupDateTime) 
     , "Percent") AS January 
FROM [Sales Table]; 
0

Вам нужно будет что-то вроде:

Select 
    Format(Sale_PickupDateTime, "yyyymm") As Period, 
    Format(Count(*)/DCount("*", "[Sales Table]"), "Percent") As MonthShare 
From 
    [Sales Table]; 
Group By 
    Format(Sale_PickupDateTime, "yyyymm") 
Смежные вопросы