2016-07-16 2 views
1

Я пытаюсь ежемесячно суммировать суммы продаж за каждый день недели. Я считаю, что функция Weekday в Access может быть использована для этого. Код функции Weekday в запросе ниже не работает. Как следует пересмотреть синтаксис функции дня недели, чтобы суммировать итоги продаж каждый день недели? (Запрос ниже был обновлен с правильным кодом и будет возвращать правильные результаты.)Доступ, Совокупные суммы за каждый день недели на ежемесячной основе

SELECT Format(DatePart("m",months.month_start),"00") & "/" & Year(months.month_start) AS [Month/Year], 

(SELECT Round(Nz(Sum(sales_receipt.SELLING_PRICE*sales_receipt.quantity),0),2) 
FROM SALES_RECEIPT 
WHERE SALES_RECEIPT.SALE_DATE between months.month_start and months.month_end and weekday(sale_date) = 1) AS [Sunday Sales Total], 

(SELECT Round(Nz(Sum(sales_receipt.SELLING_PRICE*sales_receipt.quantity),0),2) 
FROM SALES_RECEIPT 
WHERE SALES_RECEIPT.SALE_DATE between months.month_start and months.month_end and weekday(sale_date) = 2) AS [Monday Sales Total], 

(SELECT Round(Nz(Sum(sales_receipt.SELLING_PRICE*sales_receipt.quantity),0),2) 
FROM SALES_RECEIPT 
WHERE SALES_RECEIPT.SALE_DATE between months.month_start and months.month_end and weekday(sale_date) = 3) AS [Tuesday Sales Total], 

(SELECT Round(Nz(Sum(sales_receipt.SELLING_PRICE*sales_receipt.quantity),0),2) 
FROM SALES_RECEIPT 
WHERE SALES_RECEIPT.SALE_DATE between months.month_start and months.month_end and weekday(sale_date) = 4) AS [Wednesday Sales Total], 

(SELECT Round(Nz(Sum(sales_receipt.SELLING_PRICE*sales_receipt.quantity),0),2) 
FROM SALES_RECEIPT 
WHERE SALES_RECEIPT.SALE_DATE between months.month_start and months.month_end and weekday(sale_date) = 5) AS [Thursday Sales Total], 

(SELECT Round(Nz(Sum(sales_receipt.SELLING_PRICE*sales_receipt.quantity),0),2) 
FROM SALES_RECEIPT 
WHERE SALES_RECEIPT.SALE_DATE between months.month_start and months.month_end and weekday(sale_date) = 6) AS [Friday Sales Total], 

(SELECT Round(Nz(Sum(sales_receipt.SELLING_PRICE*sales_receipt.quantity),0),2) 
FROM SALES_RECEIPT 
WHERE SALES_RECEIPT.SALE_DATE between months.month_start and months.month_end and weekday(sale_date) = 7) AS [Saturday Sales Total] 

FROM (SELECT DateSerial(Year(sale_date), Month(sale_date), 1) AS month_start, 
DateAdd("d", -1, DateSerial(Year(sale_date), Month(sale_date) + 1, 1)) AS month_end 
FROM SALES_RECEIPT 
WHERE sale_date between #1/1# And #12/31# 
GROUP BY Year(sale_date), Month(sale_date)) AS months; 
+0

объяснить симптомы "не работает". Пример набора данных того, что вы хотели бы, чтобы он выглядел, и того, что он на самом деле появляется, как – dbmitch

+1

Когда запрос запущен, появляется поле «ВВОД ПАРАМЕТРОВ ЗНАЧЕНИЕ» с запросом «date_value». Если я введу дату date_value 1, которая является воскресенью, каждый день недели за январь имеет значение $ 2016.62 ($ 2016.62 - это общая сумма продаж за все 31 день в январе). Воскресенье должно быть $ 0, потому что магазин закрыт в воскресенье. Помимо воскресенья, каждый день должен иметь менее 2016,62 доллара США, но сумма итогов за каждый день недели должна составлять до 2016,62 доллара за январь. –

ответ

1

Похоже, вы не делаете фактическое сравнение измеряемой величины с помощью функции будней:

Для каждый из дней недели сравнения, попробуйте изменить

weekday(date_value = #)) 

к этому

EDIT-изменения, чтобы удалить всплывающие и использовать Видимое поле

weekday(sale_date) = #) 
+0

Я внес изменения, но поле «ENTER PARAMETER VALUE» все еще появляется, запрашивая «date_value». Если я введу date_value из 1, который является воскресенью, есть значения только в воскресенье, а остальные дни составляют $ 0. Стоимость воскресенья за январь составляет $ 2016,62 ($ 2016,62 - это общая сумма продаж за 31 месяц в январе). Если я введу 2, только понедельник имеет значения, а остальные дни - $ 0. Понедельник за январь составляет $ 2016,62. То же самое в любой день недели, он обеспечивает ежемесячную сумму, а остальные дни составляют $ 0. –

+0

Вы настроили его как параметр - всегда будет всплывающее окно - вы говорите, что не хотите, чтобы датавация появлялась? – dbmitch

+0

Обновленный ответ с использованием поля sales_date – dbmitch

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