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

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

13.12.2015, 18:45. Показов 4341. Ответов 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
1 / 1 / 0
Регистрация: 13.12.2015
Сообщений: 73
14.12.2015, 20:56  [ТС]
Студворк — интернет-сервис помощи студентам
Так и есть

Добавлено через 10 секунд
mavr81,

Добавлено через 14 минут
mavr81, только я не совсем понимаю что значит этот запрос
0
5989 / 4564 / 1096
Регистрация: 29.08.2013
Сообщений: 28,207
Записей в блоге: 3
14.12.2015, 21:16
glauz,
таблицы нужно связывать по ключевым полям

просто так перечисление их в FROM это неверно
0
1 / 1 / 0
Регистрация: 13.12.2015
Сообщений: 73
14.12.2015, 21:19  [ТС]
qwertehok, то есть связывать в самом access? или средствами delphi? Просто первый запрос без всяких связей работает и результат выводится корректно
0
5989 / 4564 / 1096
Регистрация: 29.08.2013
Сообщений: 28,207
Записей в блоге: 3
14.12.2015, 21:24
glauz,
запросы к дельфи отношения не имеют. сам текст запроса ты передаешь в драйвер аксесса и запрос выполняется там. затем в дельфи возвращается результат.

текст запроса подчинен синтаксису SQL. почитай про этот самый синтаксис.
0
3 / 3 / 2
Регистрация: 03.11.2015
Сообщений: 10
14.12.2015, 21:33
В первом запросе вы связали две таблицы условием postavki1.nomer_materiala=materiali.nome r_materiala, во втором - никак не связали.
Почитайте про JOIN. Для начала можно на Википедии посмотреть - описано просто и с примерами. Когда вы в выражении FROM указываете более одной таблицы, выполняется соединение (join). Во втором запросе у вас получился CROSS JOIN.
0
1 / 1 / 0
Регистрация: 13.12.2015
Сообщений: 73
14.12.2015, 22:11  [ТС]
mavr81, Связал я таблицу поставки с ключевыми полями таблиц материалы и объекты. И вывел запрос:
SQL
1
SELECT materiali.nazvanie_materiala, SUM(postavki1.kolichestvo) AS kolichestvo FROM postavki1, obekti, materiali WHERE postavki1.nomer_obekta = 1 GROUP BY materiali.nazvanie_materiala
результат получился вот такой:
Кликните здесь для просмотра всего текста
Название: Безымянный.png
Просмотров: 24

Размер: 1.6 Кб

должен быть:
Название мат--------------- Кол-во
Цемент-------------------------10
Песок--------------------------30
Кирпич------------------------20000
0
3 / 3 / 2
Регистрация: 03.11.2015
Сообщений: 10
14.12.2015, 22:41
Лучший ответ Сообщение было отмечено glauz как решение

Решение

glauz, где же связали?
postavki1.nomer_obekta = 1 - это не связали, это ограничили выборку из таблицы postavki1
а у вас есть еще таблицы obekti и materiali - выборка из них никак не ограничена, плюс они комбинируются друг с другом и с третьей таблицей. Поэтому строки множатся и сумма тоже.
Нужно примерно так:
SQL
1
2
3
4
5
6
SELECT m.nazvanie_materiala, SUM(p.kolichestvo) AS kolichestvo 
FROM postavki1 p 
JOIN obekti o ON o.id=p.obekt_id
JOIN materiali m ON m.id=p.material_id
WHERE p.nomer_obekta=1 
GROUP BY m.nazvanie_materiala
или так (то же самое но без JOIN):
SQL
1
2
3
4
5
6
7
8
SELECT m.nazvanie_materiala, SUM(p.kolichestvo) AS kolichestvo 
FROM postavki1 p, 
     obekti o, 
     materiali m 
WHERE (p.nomer_obekta=1) 
  AND (o.id=p.obekt_id)
  AND (m.id=p.material_id)
GROUP BY m.nazvanie_materiala
1
1 / 1 / 0
Регистрация: 13.12.2015
Сообщений: 73
14.12.2015, 23:20  [ТС]
mavr81, Я подумал про связь в access, а не в запросе. Извеняйте, sql мне учить и учить)
Второй вариант более понятен, связал ключ поля и все заработало.
0
1 / 1 / 0
Регистрация: 13.12.2015
Сообщений: 73
15.12.2015, 03:06  [ТС]
Как реализовать отчет подобного типа через ravedesigner :
Кликните здесь для просмотра всего текста


То есть будет выполняться запрос и отчет будет считываться с dbgrid'a. Каким образом реализовать запрос по всем объектам на один dbgrid чтобы чтобы ravedesigner его скушал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.12.2015, 03:06
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru