Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft Access |
![]() ![]() |
Топик располагается на нескольких страницах: ←Ctrl назад 1 2 [3] все |
Misteriya Member Откуда: Сообщений: 8 |
sdku, Спасибо, что ответили)))) Да мне надо посчитать суммарную продажу с 1 по 5 число, со 2 по 6 число, с 3 по 7 число........ и т д. А потом посчитать какая суммарная продажа была минимальная. |
19 авг 18, 18:04 [21647286] Ответить | Цитировать Сообщить модератору |
Misteriya Member Откуда: Сообщений: 8 |
Разницы нет между минимальной, и максимальной......я попробовала как написал код Опоздавший......все получилось, но увы не получилось сделать это в конструкторе запросов. Вернее оно код перевело в вид конструктора.......но увы.....если его переводить так с нуля, оно не получается |
19 авг 18, 18:08 [21647287] Ответить | Цитировать Сообщить модератору |
Misteriya Member Откуда: Сообщений: 8 |
Tarasios, Спасибо, что ответили)))) |
19 авг 18, 18:10 [21647289] Ответить | Цитировать Сообщить модератору |
Misteriya Member Откуда: Сообщений: 8 |
Очень надеюсь на вашу поддержку |
19 авг 18, 18:14 [21647291] Ответить | Цитировать Сообщить модератору |
sdku Member Откуда: Краснодар Сообщений: 5515 |
как-то так: из этой функции делаете процедуру и рекордсетом заполняете временную таблицу на которой запрос TOP 1 с прямой сортировкой по полю число (возникнет вопрос что делать если будет не одно min значение) и значение этого поля будет минимум за выбранный период (все это делается в одной процедуре VBA-единственное придется создать временную таблицу)Function my(start As Date, finish As Date) Dim counter, a, b For counter = start To finish Step 5 a = Format(counter, "mm\/dd\/yy") b = Format(counter + 4, "mm\/dd\/yy") Debug.Print "c " & counter & " po " & counter + 4; Nz(DSum("chislo", "tbl", "myDate>=#" & a & "# and myDate<=#" & b & "#"), 0) Next End Function ?my(#7/20/18#,#8/30/18#) c 20.07.2018 po 24.07.2018 2 c 25.07.2018 po 29.07.2018 3 c 30.07.2018 po 03.08.2018 0 c 04.08.2018 po 08.08.2018 0 c 09.08.2018 po 13.08.2018 11 c 14.08.2018 po 18.08.2018 4 c 19.08.2018 po 23.08.2018 5 c 24.08.2018 po 28.08.2018 5 c 29.08.2018 po 02.09.2018 6 |
19 авг 18, 20:30 [21647346] Ответить | Цитировать Сообщить модератору |
Misteriya Member Откуда: Сообщений: 8 |
sdku, Спасибо, но увы мне надо сделать это в конструкторе запроса Access, не применяя элементов программирования |
19 авг 18, 21:49 [21647398] Ответить | Цитировать Сообщить модератору |
Misteriya Member Откуда: Сообщений: 8 |
Вот так я уже пробовала, но увы не смотря что оно переходит в режим конструктора, новый файл с использованием аналога не работает SELECT TOP 1 T1.Дата AS Дата_начала, T1.Дата +4 AS Дата_окончания, Sum(T2.Продажа) AS Сумма FROM Задание AS T1, Задание AS T2 WHERE T2.Дата Between T1.Дата AND T1.Дата +4 GROUP BY T1.Дата HAVING Count(*)=5 ORDER BY 3 DESC |
19 авг 18, 21:58 [21647400] Ответить | Цитировать Сообщить модератору |
sdku Member Откуда: Краснодар Сообщений: 5515 |
Misteriya, не знаю, можно ли Вашу "хотелку" выполнить в SQL (даже не задумывался,потому как сомневаюсь в такой возможности),вариант в VBA К сообщению приложен файл (tmp.rar - 16Kb) cкачать ![]() |
20 авг 18, 01:58 [21647491] Ответить | Цитировать Сообщить модератору |
mds_world Member Откуда: Ташкент Сообщений: 27501 |
Если дни без пропусков (в том числе на праздники и выходные) и скользящее среднее определяется за предшествующие дни, включая текущий, то запрос может быть такимselect max(z.mx) as МаксимумПродаж from (select t1.ПолеДаты, (select sum(Сумма) from Таблица t2 where t2.Дата between t1.Дата-4 and t1.Дата) AS mx from Таблица AS t1) z |
20 авг 18, 02:19 [21647493] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: ←Ctrl назад 1 2 [3] все |
Все форумы / Microsoft Access | ![]() |