Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
1 / 1 / 0
Регистрация: 13.12.2015
Сообщений: 73

Суммирование и группировка

13.12.2015, 18:45. Показов 4284. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть три таблицы(материалы, объекты, поставки) скрины:
Кликните здесь для просмотра всего текста
.
Нужно из таблицы поставки суммировать кол-во поставок по материалам и запихать их в таблицу материалы.
Должно это выглядеть так:
Название мат-----ед. изм----------- Кол-во
Цемент--------------тонна--------------50
Песок----------------тонна--------------80
Кирпич--------------штука------------51000

Я могу сложить кол-во поставок по отдельности, но сложить их все вместе и группировать с таблицей материалы не получается. Задание сделать именно все одним через sql и все одним запросом.

Ну если не получится, то как хотя бы сделать это в access, чтобы потом просто вывести запрос в delphi
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.12.2015, 18:45
Ответы с готовыми решениями:

Группировка и суммирование в базе данных
Добрый день! Имеется База Данных (Delphi + Access). В базе данных имеется ряд одинаковых значений, отличающихся лишь количеством. Мне...

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

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

28
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
13.12.2015, 19:41
glauz, подробнее о том что должно получиться
например группируем по полю nomer_*** и суммируем по полю количество
получится
Школа Цемент 40
Школа Песок 30
...


что дальше делать?
0
1 / 1 / 0
Регистрация: 13.12.2015
Сообщений: 73
13.12.2015, 20:20  [ТС]
Цитата Сообщение от qwertehok Посмотреть сообщение
подробнее о том что должно получиться
например группируем по полю nomer_*** и суммируем по полю количество
получится
Школа Цемент 40
Школа Песок 30
...
что дальше делать?
Нужно из таблицы поставки суммировать столбец количество по материалам(цемень, песок, кирпич) и вывести результат в таблицу материалы.
Должно выглядеть так:

Название мат-----ед. изм----------- Кол-во
Цемент--------------тонна--------------50
Песок----------------тонна--------------80
Кирпич--------------штука------------51000
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
13.12.2015, 20:28
glauz, что значит
Цитата Сообщение от glauz Посмотреть сообщение
вывести результат в таблицу материалы
в таблицу вывести нельзя. можно вставить
но как вставлять если в таблице цена есть, а в других таблицах ее нет?
0
1 / 1 / 0
Регистрация: 13.12.2015
Сообщений: 73
13.12.2015, 21:03  [ТС]
Цитата Сообщение от qwertehok Посмотреть сообщение
в таблицу вывести нельзя. можно вставить
но как вставлять если в таблице цена есть, а в других таблицах ее нет?
Извините, я не так написал. Просто нужно написать запрос со столбцами из таблицы материалы ( название мат, ед. изм) + добавить столбец с суммированными результатами сгруппированные по материалам(цемент, песок, кирпич).
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
13.12.2015, 21:07
Цитата Сообщение от glauz Посмотреть сообщение
Просто нужно написать запрос со столбцами из таблицы материалы ( название мат, ед. изм) + добавить столбец с суммированными результатами сгруппированные по материалам(цемент, песок, кирпич).
откуда взять этот столбец?
0
1 / 1 / 0
Регистрация: 13.12.2015
Сообщений: 73
13.12.2015, 21:16  [ТС]
Цитата Сообщение от qwertehok Посмотреть сообщение
откуда взять этот столбец?
я знаю как суммировать их по отдельности( то есть по одному из материалов) а вот как суммировать их по материалам одним запросом у меня не получается.
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
13.12.2015, 21:40
glauz, я у вас одно спрашиваю, вы мне другое. подскажу по запросу, а дальше сами

у вас субд какая? MSSQL\access\еще-что - нибудь?
0
1 / 1 / 0
Регистрация: 13.12.2015
Сообщений: 73
13.12.2015, 21:52  [ТС]
qwertehok, я имел ввиду суммированный столбец количество. база access, я писал выше
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
13.12.2015, 21:58
glauz, если аксесс - то сделайте запрос в конструкторе
0
1 / 1 / 0
Регистрация: 13.12.2015
Сообщений: 73
13.12.2015, 22:04  [ТС]
qwertehok, Мне желательно в delphi запрос написать.
SQL
1
SELECT SUM(kolichestvo) AS kolichestvo FROM postavki1 WHERE postavki1.nomer_materiala = 1
Для одного материала я сделал, а как сделать для все сразу
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
13.12.2015, 22:10
Лучший ответ Сообщение было отмечено glauz как решение

Решение

glauz, добавляйте GROUP BY по нужному полю
1
1 / 1 / 0
Регистрация: 13.12.2015
Сообщений: 73
13.12.2015, 22:49  [ТС]
qwertehok, не могли бы вы написать примерный запрос, sql я плохо знаю. И как суммировать в выше описанном запросе не только по материалу номер 1 а по всем сразу. Я не могу понять как это сделать
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
13.12.2015, 22:54
Цитата Сообщение от glauz Посмотреть сообщение
не могли бы вы написать примерный запрос, sql я плохо знаю.
у меня аксесса нет - там свой синтаксис
Цитата Сообщение от glauz Посмотреть сообщение
Я не могу понять как это сделать
откройте учебник
1
1 / 1 / 0
Регистрация: 13.12.2015
Сообщений: 73
14.12.2015, 03:11  [ТС]
qwertehok, Спасибо, вставил группировку по каждому полю и все заработало.
SQL
1
SELECT materiali.nazvanie_materiala, materiali.ed_izmereniya, SUM(kolichestvo) AS kolichestvo  FROM postavki1, materiali WHERE postavki1.nomer_materiala = materiali.nomer_materiala GROUP BY materiali.nazvanie_materiala, materiali.ed_izmereniya
Добавлено через 2 часа 32 минуты
qwertehok, Еще один вопрос, нужно сложить поставки всех материалов но только по объекту. Вроде бы тоже самое, но у меня выходные суммированные значения в 3 или 9 раз выше чем нужно.
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
14.12.2015, 09:45
покажите запрос
0
1 / 1 / 0
Регистрация: 13.12.2015
Сообщений: 73
14.12.2015, 14:23  [ТС]
qwertehok,
SQL
1
SELECT postavki2.nomer_materiala, SUM(postavki2.kolichestvo) AS kolichestvo FROM postavki2, obekti, materiali WHERE postavki2.nomer_obekta = 1 GROUP BY postavki2.nomer_materiala
Каждая сумма выше в 9 раз
0
3 / 3 / 2
Регистрация: 03.11.2015
Сообщений: 10
14.12.2015, 20:27
Причина в том что у вас после FROM три таблицы, а связи между ними не указаны. В этом случае выводятся все комбинации.
Пусть в таблицах A, B, C по 10 строк, тогда:
SQL
1
2
3
4
5
6
SELECT * FROM A; = 10 строк
SELECT * FROM B; = 10 строк
SELECT * FROM C; = 10 строк
SELECT A.*, B.* FROM A, B; = 100 строк
...
SELECT A.*, B.*, C.* FROM A, B, C; = 1000 строк
0
1 / 1 / 0
Регистрация: 13.12.2015
Сообщений: 73
14.12.2015, 20:35  [ТС]
mavr81, зачем мне связи если я фильтрую только одну таблицу.
0
3 / 3 / 2
Регистрация: 03.11.2015
Сообщений: 10
14.12.2015, 20:39
Уберите временно GROUP BY и увидите что попадает в сумму. У вас каждая строка из таблицы поставок будет повторяться несколько раз в разном сочетании со строками других таблиц.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.12.2015, 20:39
Помогаю со студенческими работами здесь

Группировка и суммирование datatable
Всем привет. Как можно выбрать данные из datatable, аналогично sql запросу ""SELECT Поле1, AVG(Поле2) FROM " На выходе...

Группировка и суммирование строк в DataTable
Привет всем, для группировки и суммирования строк в DataTable я использую такую функцию но мне кажется что я делаю не правильно, можете...

Суммирование и группировка в одном запросе
Доброго времени суток, уважаемые. Есть таблица вида: | name | points | ----------------- | iam1 | 1 | | iam2 | 2 | ...

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

Группировка, суммирование и модификация данных
Добрый день, форумчане! Имеется конфигурация управляемая (8.2). Есть документ, в котором 5 столбцов, в одном из которых (пусть...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значения справочника
Maks 21.03.2026
Процедура ВодителиНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) / / Отключаем стандартную обработку (стандартное открытие формы выбора без фильтров) . . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru