Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 02.06.2015
Сообщений: 26
1

Составить запрос с разбивкой по дням недели

23.06.2015, 11:32. Показов 1969. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть таблица и форма,в которой данные из .csv файлов автоматически заносятся в таблицу каждую неделю. Данные разрозненные.
db1.rar
Так вот не могу никак разобраться,как составить запрос, чтоб получилась вот такая таблица:
Составить запрос с разбивкой по дням недели

И если вдруг кто то будет так великодушен, то помогите разобраться как столбец "Адрес" в исходной таблице превратить в запросе (дополнительный столбец "адрес" слева)в короткую строчку типа: "ТП - 000 секция трансформатора 0" (там длинный адрес трансформаторной подстанции.хочется оставить лишь номер ТП/РП и секцию трансформатора).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.06.2015, 11:32
Ответы с готовыми решениями:

Сортировка по дням недели
Здравствуйте. В таблице имеются записи с полем "День недели", в котором строки "Понедельник",...

Группировка по дням недели
В EXCELe есть функция ДЕНЬНЕД(), а в ACCESSe как сгруппировать записи по дням недели?

Сортировка в отчете по дням недели
В задании сказано отсортировать отчет по дням недели, однако в отчете всё сортируется по алфавиту....

Создание отчета с сортировкой по дням недели
Есть запрос содержащий поле с днем недели. Нужно составить отчет примерно как во вложении, на...

12
Эксперт MS Access
17486 / 7248 / 1651
Регистрация: 21.06.2012
Сообщений: 13,864
23.06.2015, 11:46 2
Уточнения; действующее как считается по U1, U2, U3 (среднее квадратичное?)?
Адрес короткий сделать можно, адрес должен быть в таблице или усреднение по всем адресам?
0
0 / 0 / 0
Регистрация: 02.06.2015
Сообщений: 26
23.06.2015, 12:00  [ТС] 3
да,забыл уточнить про U1,U2,U3. Должно быть среднее арифметическое.
можно по каждой позиции,но лучше для группы с одноименным названием(24 штуки с одинаковым ТП и номером секции)
0
Эксперт MS Access
17486 / 7248 / 1651
Регистрация: 21.06.2012
Сообщений: 13,864
23.06.2015, 12:20 4
Цитата Сообщение от Demonterka Посмотреть сообщение
но лучше для группы с одноименным названием(24 штуки с одинаковым ТП и номером секции)
Что однозначно соответствует полю Serial? Давайте сделаю по нему, а потом создадите таблицу-справочник нужными текстовыми обозначениями для Serial и добавите ее в запрос.
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
23.06.2015, 12:23 5
Лучший ответ Сообщение было отмечено Demonterka как решение

Решение

Предположительно, Вам подойдет перекрестный запрос, где номер ТП и секция берутся из поля Адрес с помощью функции Split. Но для этого поле Адрес всегда должно иметь одинаковый формат.
Смотрите Запрос1 и функцию Adres в Module1.
Вложения
Тип файла: rar db1TP.rar (51.5 Кб, 7 просмотров)
0
Эксперт MS Access
17486 / 7248 / 1651
Регистрация: 21.06.2012
Сообщений: 13,864
23.06.2015, 12:26 6
Вариант со сводной (Запрос Сводная_) во вложении.
Вложения
Тип файла: 7z db1 (22).7z (46.7 Кб, 10 просмотров)
1
0 / 0 / 0
Регистрация: 02.06.2015
Сообщений: 26
23.06.2015, 12:29  [ТС] 7
поле Serial конечно уникальное,но со временем может меняться(счетчик меняется на адресе,соответственно меняется и номер счетчика на том же адресе), а отслеживать изменения и вовремя вносить в справочник нет возможности
0
Эксперт MS Access
17486 / 7248 / 1651
Регистрация: 21.06.2012
Сообщений: 13,864
23.06.2015, 12:38 8
Тогда используйте в запросе функцию Adres, которую написал mobile.
0
0 / 0 / 0
Регистрация: 02.06.2015
Сообщений: 26
23.06.2015, 12:55  [ТС] 9
Спасибо! А что нужно добавить, чтоб выводил нужную неделю?(ведь в таблице данные накапливаются)
0
Эксперт MS Access
17486 / 7248 / 1651
Регистрация: 21.06.2012
Сообщений: 13,864
23.06.2015, 13:08 10
Добавить в запрос поле Неделя: Format([Дата];"ww") (это в конструкторе). Но если не нужно усреднение именно по дням недели (вне зависимости от недели, года, ... ), то можно и встроенной группировкой воспользоваться - преобразовать дату в исходной таблице из текста в дату (полный формат), тогда в сводной, в списке полей, появится дата по неделям. Из нее можно вытащить год, неделю, дни.
1
0 / 0 / 0
Регистрация: 02.06.2015
Сообщений: 26
24.06.2015, 09:03  [ТС] 11
Спасибо!Все грамотно расписали))

Добавлено через 19 часов 43 минуты
Вчера пошаманил, хотел вывести записи за последние 7 дней(пробовал top 7....desc), но почему то выводит лишь 1 запись(самую последнюю дату).Как изменить код?

SQL
1
2
3
4
5
TRANSFORM round(avg(nz(U1,0)+nz(U2,0)+nz(U3,0))/3,0)
SELECT adres(Адрес) AS ТПАдрес, format(Дата,"hh:00") AS Время
FROM AVG_U INNER JOIN [SELECT DISTINCT top 7 datevalue(Дата) AS d FROM AVG_U ORDER BY datevalue(Дата) DESC]. AS q ON datevalue(AVG_U.Дата)=q.d
GROUP BY adres(Адрес), format(Дата,"hh:00")
PIVOT q.d;
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
24.06.2015, 11:01 12
Лучший ответ Сообщение было отмечено Demonterka как решение

Решение

Внутренний подзапрос надо сделать иначе для выделения уникальных значений
SQL
1
2
3
4
5
6
TRANSFORM round(avg(nz(U1,0)+nz(U2,0)+nz(U3,0))/3,0)
SELECT adres(Адрес) AS ТПАдрес, format(Дата,"hh:00") AS Время
FROM AVG_U INNER JOIN 
(SELECT top 7 d FROM (SELECT DISTINCT datevalue(Дата) AS d FROM AVG_U) ORDER BY d DESC) AS q ON datevalue(AVG_U.Дата)=q.d
GROUP BY adres(Адрес), format(Дата,"hh:00")
PIVOT q.d
0
0 / 0 / 0
Регистрация: 02.06.2015
Сообщений: 26
24.06.2015, 13:48  [ТС] 13
Все работает.Мой поклон.
0
24.06.2015, 13:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.06.2015, 13:48
Помогаю со студенческими работами здесь

Сортировка в отчете по дням недели / MS Access
Всем привет.Помогите,не могу выполнить сортировку по дням недели в отчете.Нужно чтобы в отчете...

Динамика по дням недели БД "Библиотека"
Всем привет! Извиняюсь за то, что туплю.... В БД "Библиотека" мне надо за указанный год вывести...

Сортировка по дням недели
Не подскажете, как отсортировать таблицу по полю - Дни_недели (Понедельник - Воскресенье)? Пишу...

Сортировка по дням недели
Имеется таблица со столбцом: дата. В нем указаны дни недели вразнобой, нужно отсортировать их по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru