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

Функция Dsum с групировкой

25.05.2016, 14:12. Показов 2002. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, подскажите как можно сделать запрос с использованием функции Dsum с групировкой по наименованию. Во вложении Запрос1
Вложения
Тип файла: rar ЛСЗ.rar (18.6 Кб, 8 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2016, 14:12
Ответы с готовыми решениями:

Функция nz Dsum
Пару месяцев назад mobile, предложил вот такую вещицу: UPDATE Таблица2 SET...

Не включается функция DSum
Доброго времени суток! Друзья, проблема такова. Есть форма, в которой в двух полях отражаются...

Функция DSUM в запросе
Добрый вечер! Подскажите как правильно описать в функции DSUM параметры для правильного подсчета...

Функция! Какую операцию делает эта DSum
Уважаемые знатоки! Что делает функция DSUM???? Проставил ее в подсчет остатка, ну такую ересь...

16
647 / 100 / 11
Регистрация: 08.06.2015
Сообщений: 1,564
25.05.2016, 14:17  [ТС] 2
Visual Basic
1
Выражение2: DSum(" [ОтрабВремяБезТУ] ";"[Запрос1]";"[Месяц]<='" & [Месяц] & "'" And "[Наименование]='" & [Наименование] & "'")
Не срабатывает
0
784 / 466 / 79
Регистрация: 18.05.2016
Сообщений: 1,244
Записей в блоге: 4
25.05.2016, 14:18 3
Первый ответ гугла, как использовать DSum: https://support.office.com/ru-... 6056e61a32
А как решать конкретно вашу задачу, не зная её условий - это загадка

Что в выражении делает "[Запрос1]"? Данные берутся прямо из того запроса, где они обсчитываются? Это может вызвать только циклическую ошибку. Данные в какой-то таблице находятся же? Если для расчётов нужны данные из нескольких таблиц после объединения, то сначала создайте запрос с этим объединением, а потом ещё один, куда добавите первый запрос в качестве источника данных, которые уже и будете обсчитывать функцией
0
647 / 100 / 11
Регистрация: 08.06.2015
Сообщений: 1,564
25.05.2016, 14:27  [ТС] 4
Нужно получить промежуточные итоги по месяцам с накоплением для каждого наименования отдельно

Добавлено через 7 минут
Аналоги
Цитата Сообщение от amd48 Посмотреть сообщение
Что в выражении делает "[Запрос1]"? Данные берутся прямо из того запроса, где они обсчитываются? Это может вызвать только циклическую ошибку. Данные в какой-то таблице находятся же? Если для расчётов нужны данные из нескольких таблиц после объединения, то сначала создайте запрос с этим объединением, а потом ещё один, куда добавите первый запрос в качестве источника данных, которые уже и будете обсчитывать функцией
Аналогичный запрос работает не первый день без ошибок, но он без группировки

Добавлено через 42 секунды
Мне напротив месяца 201502 нужно получить итоги 1 и 2-го месяца по текущему наименованию и так далее
0
Эксперт MS Access
17486 / 7248 / 1651
Регистрация: 21.06.2012
Сообщений: 13,863
25.05.2016, 14:40 5
Для ОтрабВремяБезТУ смотрите Запрос2, в нем Запрос1 без накопления нестандартно джойнится с собой, так что в конструктор не переходите.
Вложения
Тип файла: 7z ЛСЗ.7z (18.7 Кб, 6 просмотров)
1
647 / 100 / 11
Регистрация: 08.06.2015
Сообщений: 1,564
25.05.2016, 14:48  [ТС] 6
Бросьте текст запроса пожалуйста

Добавлено через 4 минуты
У меня не одно такое поле
0
Эксперт MS Access
17486 / 7248 / 1651
Регистрация: 21.06.2012
Сообщений: 13,863
25.05.2016, 14:49 7
Лучший ответ Сообщение было отмечено alexpro1979 как решение

Решение

Запрос1
SQL
1
2
3
4
5
SELECT Категории.Наименование, ПоказЛСЗ.Месяц, CLng([Месяц]) AS Месяц_, ПоказЛСЗ.ОтрабВремяБезТУ, 
ПоказЛСЗ.СверУрСуб, ПоказЛСЗ.РапортТО, ПоказЛСЗ.РапортУО, ПоказЛСЗ.СрСпЧисл, ДниЧасы.Коэф, 
Round(((Nz([ОтрабВремяБезТУ],0)+Nz([СверУрСуб],0))/8+Nz([РапортТО],0)+Nz([РапортУО],0))/Nz([СрСпЧисл],0),2) AS ОтработанныеДни
FROM ДниЧасы RIGHT JOIN (Категории RIGHT JOIN ПоказЛСЗ ON Категории.IDкат = ПоказЛСЗ.Категория) ON ДниЧасы.МесяцДни = ПоказЛСЗ.Месяц
ORDER BY Категории.Наименование, CLng([Месяц]);
Запрос2
SQL
1
2
3
4
5
SELECT Запрос1.Наименование, Запрос1.Месяц, Запрос1.ОтрабВремяБезТУ, 
SUM(Запрос1_1.ОтрабВремяБезТУ) AS [Sum-ОтрабВремяБезТУ]
FROM Запрос1 INNER JOIN Запрос1 AS Запрос1_1 ON 
(Запрос1.Наименование = Запрос1_1.Наименование) AND (Запрос1.Месяц_ >= Запрос1_1.Месяц_)
GROUP BY Запрос1.Наименование, Запрос1.Месяц, Запрос1.ОтрабВремяБезТУ;
0
647 / 100 / 11
Регистрация: 08.06.2015
Сообщений: 1,564
25.05.2016, 14:51  [ТС] 8
Спасибо
0
Эксперт MS Access
17486 / 7248 / 1651
Регистрация: 21.06.2012
Сообщений: 13,863
25.05.2016, 14:52 9
Цитата Сообщение от alexpro1979 Посмотреть сообщение
У меня не одно такое поле
Ну так будет суммирование по каждому. Для упрощения - в SQL Запроса2 заменяете в джойне >= на =, переходите в конструктор, суммируете, что надо, переходите и SQL, восстанавливаете >=.
1
647 / 100 / 11
Регистрация: 08.06.2015
Сообщений: 1,564
26.05.2016, 11:39  [ТС] 10
Посмотрите пожалуйста во вложении запрос2 и копия запрос2. При добавлении места ругается на выполнение запроса тот который копия. Как бороться
Вложения
Тип файла: rar ЛСЗ.rar (26.4 Кб, 6 просмотров)
0
647 / 100 / 11
Регистрация: 08.06.2015
Сообщений: 1,564
26.05.2016, 11:40  [ТС] 11
Может как вариант делить на несколько запросов?
0
Эксперт MS Access
17486 / 7248 / 1651
Регистрация: 21.06.2012
Сообщений: 13,863
26.05.2016, 11:43 12
Можно и несколько. Все зависит от того, зачем все это нужно.
1
647 / 100 / 11
Регистрация: 08.06.2015
Сообщений: 1,564
26.05.2016, 11:48  [ТС] 13
Таблица нужна для анализа

Добавлено через 23 секунды
Показатели используются в расчетах практически одни и те же
0
Эксперт MS Access
17486 / 7248 / 1651
Регистрация: 21.06.2012
Сообщений: 13,863
26.05.2016, 11:55 14
Тогда делайте общую, скрыть ненужные - два клика мышью.
1
647 / 100 / 11
Регистрация: 08.06.2015
Сообщений: 1,564
26.05.2016, 12:05  [ТС] 15
Запрос копия 2 не выполняется ругается
0
Эксперт MS Access
17486 / 7248 / 1651
Регистрация: 21.06.2012
Сообщений: 13,863
26.05.2016, 12:21 16
Цитата Сообщение от alexpro1979 Посмотреть сообщение
Запрос копия 2 не выполняется ругается
Так в исходном запросе Показ1 ошибки в вычислениях последних столбцов, кроме 1 записи - на Null делите ... . Скорей всего из-за этого ... .
1
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
26.05.2016, 12:24 17
Предпосылки к переполнению возникают еще на стадии запроса Показ1. Наверное Вы обратили внимание, что в большинстве строк ошибка !Число на процентных показателях. В следующем запросе эти строки уже дают ошибку переполнения.
Выражения типа Round(Nz([Отпуск],0)/Nz([ВсегоЯвкиНеявки],1)*100,2) AS ПроцПотТО заменены на
SQL
1
IIf(isnull([Отпуск]),0,Round(Nz([Отпуск],0)/Nz([ВсегоЯвкиНеявки],1)*100,2)) AS ПроцПотТО
Логику запроса не смотрел
Вложения
Тип файла: rar ЛСЗ.rar (25.7 Кб, 7 просмотров)
1
26.05.2016, 12:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2016, 12:24
Помогаю со студенческими работами здесь

Обновить форму (запрос) в которой используется функция Sum() /DSum()
Уважаемые форумчане, Помогите с простым вопросом. Есть главная форма, на которой две не...

Подсчет итогов в отчете из запросов с условиями. Функция Dcount(), DSum()
В итоговом отчете не могу вывести суммарные данные по классам из разных школ по определенному...

Запрос на выборку с групировкой
Здравствуйте! Помогите пожалуйста разобраться в запросе на выборку: SELECT tblErich.Erich,...

DSum
Можно ли в функции DSum(ИмяПоля;Таблица;Критерий) в качестве критерия использовать два условия...


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

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