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

Запрос на суммирование

13.06.2016, 09:30. Показов 938. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброу утро есть запрос сумирования
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT Месяц.YY, Месяц.MM, Оборот.id_Заказа, 
-SUM(([id_Счета]=1)*[Сумма]*Оборот.id_Операции) AS Счет1,
 -SUM(([id_Счета]=2)*[Сумма]*Оборот.id_Операции) AS Счет2,
 -SUM(([id_Счета]=3)*[Сумма]*Оборот.id_Операции) AS Счет3,
 -SUM(([id_Счета]=4)*[Сумма]*Оборот.id_Операции) AS Счет4,
 -SUM(([id_Счета]=5)*[Сумма]*Оборот.id_Операции) AS Счет5,
 -SUM(([id_Счета]=6)*[Сумма]*Оборот.id_Операции) AS Счет6,
 SUM(Оборот.Сумма*Оборот.id_Операции) AS Всего
 
FROM Месяц LEFT JOIN Оборот ON DateSerial(Месяц.YY,Месяц.MM,1)>Оборот.Дата
 
GROUP BY Месяц.YY, Месяц.MM, Оборот.id_Заказа
ORDER BY Месяц.YY, Месяц.MM, Оборот.id_Заказа;
Добавлено через 2 минуты
Как можно подсчитать итог по полю, при этом если id_Операции=1 нужно добавить, ести =2 отнять.
Подсумировать для ид=1 и отдельно ид=2 и эти значения отнять друг от друга.

Добавлено через 22 секунды
Только тремя запросами?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.06.2016, 09:30
Ответы с готовыми решениями:

Запрос на суммирование
Всем привет! Помогите, пожалуйста, составить запрос в виде приложенной таблицы

Запрос на суммирование значений
Имеется 2 таблицы: Остатки с полями (Ткань(РК), Метраж) и Перемещение с полями (ID(PK), Ткань, метраж, Тип_перемещения). Поле...

Запрос на суммирование одинаковых записей
Здравствуйте! Подскажите пожалуйста, как сформировать запрос который бы суммировал записи в таблице у которых одинаковое имя... Например ...

8
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
13.06.2016, 09:59
Как вариант
SQL
1
-SUM(([id_Счета]=1)*[Сумма]*IIf(Оборот.id_Операции=2,-1,1)) AS Счет1,
2
Эксперт MS Access
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
13.06.2016, 10:05
Цитата Сообщение от alexpro1979 Посмотреть сообщение
если id_Операции=1 нужно добавить, ести =2 отнять.
SQL
1
-SUM(([id_Счета]=1)*[Сумма]*((Оборот.id_Операции=2)-(Оборот.id_Операции=1)) AS Счет1
Добавлено через 26 секунд
Опоздал :-)
2
648 / 101 / 11
Регистрация: 08.06.2015
Сообщений: 1,564
13.06.2016, 11:35  [ТС]
-Sum((Элементы.[912]*(Элементы.идОпер=2) - Элементы.идОпер=1)) AS 912,
Не считает

Добавлено через 4 минуты
Пардон ошибочка

Добавлено через 7 минут
-Sum((Элементы.ЧугунВес*((Элементы.идОпер =2) – (Элементы.идОпер=1)))) AS ЧугунВес

Добавлено через 13 минут
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
SELECT М.ГодМес, Элементы.идЗаказ, Nz([Материал],0)+Nz([ЧугунСумма],0)+Nz([СтальСумма],0)
+Nz([АлюминийСумма],0)+Nz([БронзаСумма],0) AS МатериалыФакт,
 -Sum((Элементы.Материал*(Элементы.идОпер=2) - Элементы.идОпер=1)) AS Материал,
-Sum(Элементы.ЧугунВес* IIf(Элементы.идОпер=2,-1,1)) AS ЧугунВес,
-Sum(Элементы.ЧугунСумма* IIf(Элементы.идОпер=2,-1,1)) AS ЧугунСумма,
-Sum(Элементы.СтальВес* IIf(Элементы.идОпер=2,-1,1))  AS СтальВес,
-Sum(Элементы.СтальСумма* IIf(Элементы.идОпер=2,-1,1))  AS СтальСумма,
-Sum(Элементы.АлюминийВес* IIf(Элементы.идОпер=2,-1,1)) AS АлюминийВес,
-Sum(Элементы.АлюминийСумма* IIf(Элементы.идОпер=2,-1,1))  AS АлюминийСумма,
-Sum(Элементы.БронзаВес* IIf(Элементы.идОпер=2,-1,1))  AS БронзаВес,
-Sum(Элементы.БронзаСумма * IIf(Элементы.идОпер=2,-1,1))  AS БронзаСумма,
-Sum(Элементы.ТЗР * IIf(Элементы.идОпер=2,-1,1))  AS ТЗР,
-Sum(Элементы.Зарплата* IIf(Элементы.идОпер=2,-1,1))  AS Зарплата,
-Sum(Элементы.ЕСВ* IIf(Элементы.идОпер=2,-1,1))  AS ЕСВ,
-Sum(Элементы.[911]* IIf(Элементы.идОпер=2,-1,1))  AS 911,
-Sum(Элементы.[912]* IIf(Элементы.идОпер=2,-1,1))  AS 912,
-Sum(Элементы.[23020]* IIf(Элементы.идОпер=2,-1,1))  AS 23020,
-Sum(Элементы.Коман37210* IIf(Элементы.идОпер=2,-1,1))  AS Коман37210,
-Sum(Элементы.Брак* IIf(Элементы.идОпер=2,-1,1))  AS Брак,
-Sum(Элементы.[63120]* IIf(Элементы.идОпер=2,-1,1))  AS 63120,
-Sum(Элементы.[683]* IIf(Элементы.идОпер=2,-1,1))  AS 683,
Nz([Материал],0)+Nz([ЧугунСумма],0)+Nz([СтальСумма],0)
+Nz([АлюминийСумма],0)+Nz([БронзаСумма],0)+Nz([ТЗР],0)
+Nz([Зарплата],0)+Nz([ЕСВ],0)+Nz([911],0)+Nz([912],0)+Nz([23020],0)
+Nz([Коман37210],0)+Nz([Брак],0)+Nz([63120],0)+Nz([683],0) AS Итого, 0 AS ИдОпер
 
FROM М LEFT JOIN Элементы ON М.ГодМес>Элементы.Месяц
GROUP BY М.ГодМес, Элементы.идЗаказ
ORDER BY М.ГодМес, Элементы.идЗаказ;
Запрос дает отчицательные результаты остатков
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
13.06.2016, 11:44
И что - такие уж Ваши данные. Проверьте, что же суммируете, убрав SUM и только по ЧугунВес, например. Со знаками по идОпер все должно быть нормально.
1
648 / 101 / 11
Регистрация: 08.06.2015
Сообщений: 1,564
13.06.2016, 12:11  [ТС]
Visual Basic
1
2
3
4
SELECT М.ГодМес, Элементы.идЗаказ, Nz([Материал],0)+Nz([ЧугунСумма],0)+Nz([СтальСумма],0)+Nz([АлюминийСумма],0)+Nz([БронзаСумма],0) AS МатериалыФакт, Sum(Элементы.Материал*IIf(Элементы.идОпер=2,-1,1)) AS Материал, Sum(Элементы.ЧугунВес*IIf(Элементы.идОпер=2,-1,1)) AS ЧугунВес, Sum(Элементы.ЧугунСумма*IIf(Элементы.идОпер=2,-1,1)) AS ЧугунСумма, Sum(Элементы.СтальВес*IIf(Элементы.идОпер=2,-1,1)) AS СтальВес, Sum(Элементы.СтальСумма*IIf(Элементы.идОпер=2,-1,1)) AS СтальСумма, Sum(Элементы.АлюминийВес*IIf(Элементы.идОпер=2,-1,1)) AS АлюминийВес, Sum(Элементы.АлюминийСумма*IIf(Элементы.идОпер=2,-1,1)) AS АлюминийСумма, Sum(Элементы.БронзаВес*IIf(Элементы.идОпер=2,-1,1)) AS БронзаВес, Sum(Элементы.БронзаСумма*IIf(Элементы.идОпер=2,-1,1)) AS БронзаСумма, Sum(Элементы.ТЗР*IIf(Элементы.идОпер=2,-1,1)) AS ТЗР, Sum(Элементы.Зарплата*IIf(Элементы.идОпер=2,-1,1)) AS Зарплата, Sum(Элементы.ЕСВ*IIf(Элементы.идОпер=2,-1,1)) AS ЕСВ, Sum(Элементы.[911]*IIf(Элементы.идОпер=2,-1,1)) AS 911, Sum(Элементы.[912]*IIf(Элементы.идОпер=2,-1,1)) AS 912, Sum(Элементы.[23020]*IIf(Элементы.идОпер=2,-1,1)) AS 23020, Sum(Элементы.Коман37210*IIf(Элементы.идОпер=2,-1,1)) AS Коман37210, Sum(Элементы.Брак*IIf(Элементы.идОпер=2,-1,1)) AS Брак, Sum(Элементы.[63120]*IIf(Элементы.идОпер=2,-1,1)) AS 63120, Sum(Элементы.[683]*IIf(Элементы.идОпер=2,-1,1)) AS 683, Nz([Материал],0)+Nz([ЧугунСумма],0)+Nz([СтальСумма],0)+Nz([АлюминийСумма],0)+Nz([БронзаСумма],0)+Nz([ТЗР],0)+Nz([Зарплата],0)+Nz([ЕСВ],0)+Nz([911],0)+Nz([912],0)+Nz([23020],0)+Nz([Коман37210],0)+Nz([Брак],0)+Nz([63120],0)+Nz([683],0) AS Итого, 3 AS ИдОпер
FROM М LEFT JOIN Элементы ON М.ГодМес+1>Элементы.Месяц
GROUP BY М.ГодМес, Элементы.идЗаказ
ORDER BY М.ГодМес, Элементы.идЗаказ;
Работает исправно. Спасибо
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
13.06.2016, 12:21
Причем здесь это? Проверьте, что суммируется, убрав из Sum
SQL
1
-SUM(Элементы.ЧугунВес* IIf(Элементы.идОпер=2,-1,1)) AS ЧугунВес
1
648 / 101 / 11
Регистрация: 08.06.2015
Сообщений: 1,564
13.06.2016, 12:35  [ТС]
Суммируется вес чугуна.
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
13.06.2016, 12:44
Цитата Сообщение от alexpro1979 Посмотреть сообщение
Запрос дает отчицательные результаты остатков
Это типа не правильно? Ну так проверяйте, как они получаются. Проверьте, что суммируется. Для этого и предлагается посмотреть, что же суммируется, подробно, убрав SUM. Или к остаткам суммирование никакого отношения не имеет? Тогда зачем об этом сообщать?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.06.2016, 12:44
Помогаю со студенческими работами здесь

Запрос на суммирование логических полей в БД
Добрый день. Возникла следующая проблема: БД содержит в формах и таблицах много переключателей (флажков) для вывода отчета нужно их...

Суммирование полей через запрос на обновление
В MS Access создал базу для "Товароведа магазина". Сейчас нужно в запросе на обновление написать процесс добавления в...

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

суммирование 2ух полей.ЗАПРОС
ребят вот смотрите есть 2 поля русский и математика из таблицы оценки, как создать новое поле с суммой 2ух оценок к каждому студенту. ...

Запрос, Группировка, Суммирование
Добрый день всем!!! У меня такая задача, не могу разбираться, помогите пожалуйста: есть Table1, баллы студентов по категориями...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru