Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Перекрёстный запрос по часам и дням  [new]
StasEnso
Member

Откуда:
Сообщений: 13
Доброго времени суток, уважаемые форумчане! Встала задача сделать выборку из базы, чтобы было видно, насколько интенсивно, в какое время суток в течение года идут заказы. Выход я нашел такой: сделать перекрёстный запрос, в строках которого часы (от 0-23), а в столбцах день года (от 1-365). Реализовал я это таким запросом:
TRANSFORM Count (public_TS_Orders.ID) AS [Count-ID]
SELECT DISTINCT DATEPART ("h",public_TS_Orders.DeliveryTime) as 123
FROM public_TS_Orders
GROUP BY public_TS_Orders.DeliveryTime
ORDER BY public_TS_Orders.DeliveryTime, public_TS_Orders.DeliveryTime
PIVOT DatePart("y",public_TS_Orders.DeliveryTime);


В результате, по дням шкала правильная, а вот часы, дойдя до 23, начинаются снова с нуля. В общем, для наглядность прикладываю картинку.
Ткните пожалуйста носом, где я ошибся. Уже два дня гугл мучаю... Спасибо!

К сообщению приложен файл. Размер - 9Kb
4 авг 18, 22:46    [21630084]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
vmag
Member

Откуда: MP
Сообщений: 3139
StasEnso
Встала задача сделать выборку из базы, чтобы было видно, насколько интенсивно, в какое время суток в течение года идут заказы.


Ну и что там будет видно? Глаза разбегутся в разные стороны искать максимумы и минимумы...
Есть время заказа, это один запрос с группировкой по часам, суммой по количеству заказов и отсортировать сумму заказов по убыванию или возрастанию, соответственно вверху будут продуктивные часы, внизу никакие, ну или наоборот...
У меня многие этим отчетом пользуются, некоторые магазины меняют график работы, в пик открывают дополнительную кассу и т.д.
4 авг 18, 23:29    [21630098]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
StasEnso
Member

Откуда:
Сообщений: 13
vmag
StasEnso
Встала задача сделать выборку из базы, чтобы было видно, насколько интенсивно, в какое время суток в течение года идут заказы.


Ну и что там будет видно? Глаза разбегутся в разные стороны искать максимумы и минимумы...
Есть время заказа, это один запрос с группировкой по часам, суммой по количеству заказов и отсортировать сумму заказов по убыванию или возрастанию, соответственно вверху будут продуктивные часы, внизу никакие, ну или наоборот...
У меня многие этим отчетом пользуются, некоторые магазины меняют график работы, в пик открывают дополнительную кассу и т.д.


Спасибо за ответ. Тут большую роль играет сезонный фактор. Да что там! Даже дождь удваивает заказы. Аналитика тут тоньше, чем просто пиковые значения, а то что я делаю сейчас - лишь заготовка для дальнейшей обработки. На ваш вопрос отвечу - чтобы глазам не разбегаться, достаточно сделать грвлиентную подсветку. Например от красного к зелёному, в зависимости от нагрузки. Я надеюсь, что в полной мере ответил на ваш вопрос. Ответьте и вы на мой. Спасибо!
5 авг 18, 00:54    [21630129]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
zimkon
Member

Откуда: guest_rusimport
Сообщений: 101
StasEnso,
попробуйте так
TRANSFORM Count(t1.ID) AS [Count-ID]
SELECT t1.yday
FROM (SELECT public_TS_Orders.ID, DATEPART("y",public_TS_Orders.DeliveryTime) AS yday, DATEPART("h",public_TS_Orders.DeliveryTime) AS hday
FROM public_TS_Orders) AS t1
GROUP BY t1.yday
ORDER BY t1.yday
PIVOT t1.hday;
5 авг 18, 02:33    [21630135]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5669
StasEnso

В результате, по дням шкала правильная, а вот часы, дойдя до 23, начинаются снова с нуля!
Но ведь так и должно быть.(23:59:59+1 сек=00:00:00).Если очень хоча напишите в заголовки строк:IIF([полеТакое-то]=24часам;0;[полеТакое-то])
(в выражении разберитесь с форматами)
5 авг 18, 10:46    [21630187]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
StasEnso
Member

Откуда:
Сообщений: 13
sdku, возможно я неправильно выразился. Форматы меня вполне устраивают. Не устраивает, что таблица не ограничивается 24 часами, а идёт дальше вниз. Задумка в том, чтобы выстроить год по горизонтали от 1 до 365 дней, а по вертикали часы каждый суток.
6 авг 18, 13:11    [21631255]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 210
Попробуйте группировать по DATEPART("h",public_TS_Orders.DeliveryTime) и убрать DISTINCT (впервые вижу такое в перекрестном запросе).
ЗЫ. Логичнее и удобнее получить дни по вертикали и часы по горизонтали.
ЗЗЫ. Значение часов проще получить функцией HUUR()сибо![/quot]
6 авг 18, 16:05    [21631734]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5669
Вам необходимо:
1. Решить 0:30 это 0 часов или 1 час
2. Создать выражение типа:
IIF(format(полеСполнымФорматомДаты;"hh:nn")<"00:31";0;format(полеСполнымФорматомДаты;"hh:nn")<"01:31";1;format(полеСполнымФорматомДаты;"hh:nn")<"02:31";2......))) (не помню сколько вложений допускает IIF если чё конкатенация -в VBA попроще будет)
3.Это выражение(поле)использовать в качестве заголовков строк(столбцов-как решите)
4.Возможно использование параметров для отбора по годам и/или месяцам (функции Year,Month)
6 авг 18, 17:27    [21631901]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
StasEnso
Member

Откуда:
Сообщений: 13
Как всегда, помог отказ от конструктора запросов (который только с толку сбивает) и построение запроса "ручками". Обошёлся без вложенных запросов и прочих сравнений, условий и выражений. Если кому понадобится - берите, не жалко:) Всем спасибо за помощь!
TRANSFORM count (public_TS_Orders.ID)
SELECT DISTINCT DATEPART ("h",public_TS_Orders.DeliveryTime)
FROM public_TS_Orders
GROUP BY DATEPART ("h",public_TS_Orders.DeliveryTime)
PIVOT DATEPART ("Y",public_TS_Orders.DeliveryTime);

И результат:

К сообщению приложен файл. Размер - 36Kb
6 авг 18, 20:42    [21632138]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
zimkon
Member

Откуда: guest_rusimport
Сообщений: 101
StasEnso
Если кому понадобится - берите, не жалко:)

Не хочу тебя огорчать, но наврядли понадобится...
1. Distinct , в твоем случае, здесь совершенно не нужен, как тебе правильно заметил Анатолий ( при Group By - это как "масло масляное")
2. см. картинку

К сообщению приложен файл. Размер - 77Kb
6 авг 18, 21:12    [21632167]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
zimkon
Member

Откуда: guest_rusimport
Сообщений: 101
StasEnso,
Ну, и так, для интереса - как ОНО у тебя заработать могло в связи с этим?
Access specifications
6 авг 18, 21:46    [21632203]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
StasEnso
Member

Откуда:
Сообщений: 13
zimkon, у вас в шапке формат Access 2010, у меня - 2007-2016. Возможно в этом разница. Про DISTINCT - спасибо, убрал.
8 авг 18, 01:28    [21633669]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
StasEnso
Member

Откуда:
Сообщений: 13
zimkon, виноват, 2000, а не 2010.
8 авг 18, 01:29    [21633670]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
zimkon
Member

Откуда: guest_rusimport
Сообщений: 101
StasEnso
zimkon, у вас в шапке формат Access 2010, у меня - 2007-2016. Возможно в этом разница. Про DISTINCT - спасибо, убрал.

Вот здесь 21632203 я привел ограничения и для твоего формата.
В частности, как ОНО может у тебя работать, если
"Applies To: Access for Office 365, Access 2016, Access 2013, Access 2010, Access 2007
...
Query
...

Number of fields in a recordset

255
..." ???
Очень и очень мне сомнительно ... Или что-то ты не договариваешь (В частности, ты пишешь - "у меня - 2007-2016". Такого, я думаю, в принципе быть указано не может - слишком разные в этом диапазоне форматы, что-то одно, либо 2007, либо 2016)
8 авг 18, 07:04    [21633717]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
StasEnso
Member

Откуда:
Сообщений: 13
zimkon, один вопрос к вам. Всего один. Какой по-вашему может быть мой мотив, чтобы рисовать километровую таблицу и всех обманывать? Вот зачем мне это? Не игнорируйте этот вопрос пожалуйста, ответьте мне на него. А на ваш отвечу картинкой:

К сообщению приложен файл. Размер - 14Kb
8 авг 18, 13:09    [21634274]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
StasEnso
Member

Откуда:
Сообщений: 13
zimkon, как видите, формат или поколение формата 2000, которым вы пользуетесь, является даже не предыдущим...
8 авг 18, 13:15    [21634288]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
zimkon
Member

Откуда: guest_rusimport
Сообщений: 101
StasEnso,
Я не утверждал , я выразил лишь сомнения, т.к. знаю , что БД 2007 формата , например, существенно может отличаться от 2016-го, у меня нет возможности проверить всё, о чём я выразил сомнения (т.к. нет акса 2016-го). Но я думаю, что и Microsoft нет надобности вводить пользователей в заблуждение в том, что они написали в Access specifications для этих версий. Если я всё-же заблуждаюсь, то пусть меня поправят те, кто имеет возможность проверить ваш запрос в 2016 аксе. (И в случае успеха (столбцов может быть больше 255 в запросе) мы будем знать, что пи...т Microsoft в своей статье (что было бы нонсенсом).
8 авг 18, 13:32    [21634327]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
zimkon
Member

Откуда: guest_rusimport
Сообщений: 101
StasEnso,
И потом , по-моему, не надо путать формат файла (mdb, accdb) и формат базы данных. Следовало бы сделать скрин основного окна БД (как было сделано на скрине у меня, я пользовался для своего примера аксом 2003, а у него формат БД по-умолчанию стоит 2000), что впрочем не умаляет тех сомнений, которые были мной высказаны ранее.
8 авг 18, 14:01    [21634390]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
StasEnso
Member

Откуда:
Сообщений: 13
zimkon, я и есть тот, кто запустил на Access 2016, чем вам моя проверка не нравится? По поводу самой базы, она на PostgreSQL построена, Access я через ODBC к ней подключил.
8 авг 18, 14:05    [21634396]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
zimkon
Member

Откуда: guest_rusimport
Сообщений: 101
StasEnso
zimkon, я и есть тот, кто запустил на Access 2016, чем вам моя проверка не нравится? По поводу самой базы, она на PostgreSQL построена, Access я через ODBC к ней подключил.

Так что-же ты мозги людям морочишь - "база Access, база Access..." Нет у тебя никакой базы Access, а есть оболочка для работы со сторонней СУБД. Мозгокрут. Знал бы, даже отвечать бы не начинал (что, наверное, и выполню - "забью" впредь на излишнюю отзывчивость, а то как в той истории - сам же ещё виноват окажешься).
8 авг 18, 14:20    [21634419]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
StasEnso
Member

Откуда:
Сообщений: 13
zimkon
StasEnso
zimkon, я и есть тот, кто запустил на Access 2016, чем вам моя проверка не нравится? По поводу самой базы, она на PostgreSQL построена, Access я через ODBC к ней подключил.

Так что-же ты мозги людям морочишь - "база Access, база Access..." Нет у тебя никакой базы Access, а есть оболочка для работы со сторонней СУБД. Мозгокрут. Знал бы, даже отвечать бы не начинал (что, наверное, и выполню - "забью" впредь на излишнюю отзывчивость, а то как в той истории - сам же ещё виноват окажешься).


По-моему, вы сами себе голову морочите т.к. не хотите проверить свою базу на access 2016, а путаете и себя и людей. Сегодня уже времени нет, а завтра сгенерю аналогичную базу в самом Access и сделаю запрос. Не для вас, а для людей, которых вы путаете.
8 авг 18, 14:57    [21634489]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
zimkon
Member

Откуда: guest_rusimport
Сообщений: 101
StasEnso,
Валяй пионэр, покажи всем, как "яйца курицу учат". Пример к форуму приложить не забудь (для людей)
8 авг 18, 15:02    [21634503]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
StasEnso
Member

Откуда:
Сообщений: 13
zimkon, пожалуйста, соблюдайте культуру спора. Невежливо себя ведёте вы, а тень падает на весь форум. И по спецификации, что вы дали, тоже не всё так однозначно:

К сообщению приложен файл. Размер - 34Kb
8 авг 18, 15:18    [21634542]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
zimkon
Member

Откуда: guest_rusimport
Сообщений: 101
StasEnso,
Спорить с тобой - много чести для тебя. Держи пример, надеюсь разберешься , как в 2016 формат преобразовать.

К сообщению приложен файл (restrict.zip - 14Kb) cкачать
8 авг 18, 15:53    [21634596]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
StasEnso
Member

Откуда:
Сообщений: 13
zimkon
StasEnso,
Спорить с тобой - много чести для тебя. Держи пример, надеюсь разберешься , как в 2016 формат преобразовать.

Да я в общем-то и не навязывался, сказал всем спасибо и ушёл. В прочем, мне уже стало любопытно и я тут немного задержусь;)
Кстати, зачем мне эти преобразования? Я разве о чем-то просил?
8 авг 18, 22:18    [21635068]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
zimkon
Member

Откуда: guest_rusimport
Сообщений: 101
StasEnso
zimkon
StasEnso,
Спорить с тобой - много чести для тебя. Держи пример, надеюсь разберешься , как в 2016 формат преобразовать.

Да я в общем-то и не навязывался, сказал всем спасибо и ушёл. В прочем, мне уже стало любопытно и я тут немного задержусь;)
Кстати, зачем мне эти преобразования? Я разве о чем-то просил?

Много вас, таких тут бывает - переживателей-однодневок за "культуру" форума. Решат свой шкурный вопрос с помощью форумчан, и только их и видели. Так вот, этот пример не для таких как ты, а для небезразличных форумчан, которые не только вопрошают, но и помогают другим хоть иногда, которым не безразлична действительно судьба форума, "для людей".
9 авг 18, 00:04    [21635200]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
StasEnso
Member

Откуда:
Сообщений: 13
zimkon
Много вас, таких тут бывает - переживателей-однодневок за "культуру" форума. Решат свой шкурный вопрос с помощью форумчан, и только их и видели. Так вот, этот пример не для таких как ты, а для небезразличных форумчан, которые не только вопрошают, но и помогают другим хоть иногда, которым не безразлична действительно судьба форума, "для людей".

А у кого не шкурный интерес? У студента, который не слушал лекции, и теперь не хочет платить за консультации? Или у школьника, который в погоне за мечтой о будущем мега-бизнесе, тыкает кнопки? А сами форумчане, не от коммерческих-ли проектов отрываются, чтобы форумы полистать?:) Да ладно вам, мой шкурный интерес закончился после слов "всем спасибо за помощь" и сейчас интерес чисто - научный: узнать может-ли чистый Access позволить себе более 250 столбцов? К вашей радости скажу, что Access оказался действительно слабоват и выборку за год он мне дать отказался. Берегите нервы, мой друг! Удачи:)
Ещё раз, спасибо за помощь!
9 авг 18, 14:07    [21636103]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5669
StasEnso
... Access оказался действительно слабоват и выборку за год он мне дать отказался....
Да,бумажка и ручка посильнее будут!
Не смог "пройти мимо" такого утверждения
9 авг 18, 20:00    [21636707]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
vmag
Member

Откуда: MP
Сообщений: 3139
sdku,

Там еще фромастеры нужны, у него переходы от красного к зеленому, умным словом это называется, аж не выговорить...
9 авг 18, 23:04    [21636914]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
Лапух
Member

Откуда:
Сообщений: 775
sdku
...Да,бумажка и ручка посильнее будут! ...

Не верю, что ТС, аж 365 полей по дням создал в табличке.
Скорее всего он не то или не так объяснил по научному или тетминологически.
А вы прям сразу ругаться и цыничествовать..
10 авг 18, 01:51    [21637058]     Ответить | Цитировать Сообщить модератору
 Re: Перекрёстный запрос по часам и дням  [new]
DarkMan
Member

Откуда:
Сообщений: 466
StasEnso
К вашей радости скажу, что Access оказался действительно слабоват и выборку за год он мне дать отказался.

Если Access слабоват, то что Вам мешает использовать более мощный инструмент???
StasEnso
Берегите нервы, мой друг! Удачи:)

И Вам не хворать.
10 авг 18, 06:19    [21637096]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Microsoft Access Ответить