Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
4 / 4 / 2
Регистрация: 22.10.2012
Сообщений: 78

Создание сгруппированной таблицы или запроса

05.04.2016, 12:55. Показов 1224. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Подскажите, как можно реализовать в делфи сгруппированную таблицу. На рисунках то что есть и то что примерно должно получится.
Миниатюры
Создание сгруппированной таблицы или запроса   Создание сгруппированной таблицы или запроса  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.04.2016, 12:55
Ответы с готовыми решениями:

Записать в файл MS Word и Exel содержимое из одной таблицы или запроса
Записать в файл MS Word и Exel содержимое из одной таблицы или запроса...народ, помогите пожалуйста...заранее всем огромнейшее спасибо

Создание таблицы или запроса из 2-х таблиц.
Здравствуйте! Появилась необходимость, создавать временную таблицу ( для вывода одного отчета), но создать ее нужно из 2-х таблиц. ...

Создание таблицы с помощью запроса
Помогите пожалуйста. Есть запрос: create table tbl1(fld integer); Он создает таблицу в текущей базе, как сделать чтобы таблица...

20
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
05.04.2016, 13:16
Цитата Сообщение от Николай Спешил Посмотреть сообщение
На рисунках то что есть и то что примерно должно получится.
я не улавливаю схожести в этих таблицах

есть команды, а вы хотите какие то подразделения
0
4 / 4 / 2
Регистрация: 22.10.2012
Сообщений: 78
05.04.2016, 13:18  [ТС]
Команда и подразделение одно и то же
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
05.04.2016, 13:19
ааааааааааааа, вы хотите перевернуть таблицу, что бы вид спорта оказался в заголовке?
0
4 / 4 / 2
Регистрация: 22.10.2012
Сообщений: 78
05.04.2016, 13:24  [ТС]
да, что-то типа того. А результат записывался в соответствующую ячейку

Добавлено через 2 минуты
в MS Access это делает перекрестный запрос, а тут не знаю как подобное реализовать
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
05.04.2016, 13:25
а "тут" это где?
вы не написали что у вас за СУБД
0
4 / 4 / 2
Регистрация: 22.10.2012
Сообщений: 78
05.04.2016, 13:29  [ТС]
СУБД Access, а реализовать нужно в делфи. Т.е. считать данные из одной таблицы и преобразовать её в другую.
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
05.04.2016, 13:32
Цитата Сообщение от Николай Спешил Посмотреть сообщение
в MS Access это делает перекрестный запрос
Цитата Сообщение от Николай Спешил Посмотреть сообщение
СУБД Access
делайте точно также, если умеете
напишите хранимку и вызывайте ее из делфи
0
4 / 4 / 2
Регистрация: 22.10.2012
Сообщений: 78
05.04.2016, 13:39  [ТС]
Делфи не понимает sql-запрос созданный в Access.
Т.е. если в ADOQuery1.SQL.Add('текст запроса') прописать текст запроса из Access:
SQL
1
2
3
4
5
TRANSFORM SUM(RESULT.[Total]) AS [Sum-Total]
SELECT RESULT.[Team_result], SUM(RESULT.[Total]) AS [Итоговое значение Total]
FROM RESULT
GROUP BY RESULT.[Team_result]
PIVOT RESULT.[Sport_result]
то ничего не получается.

Добавлено через 1 минуту
что понимаете под "хранимкой", я не знаю что это?
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
05.04.2016, 13:42
Цитата Сообщение от Николай Спешил Посмотреть сообщение
Делфи не понимает sql-запрос созданный в Access.
делфи вообще запросы "не понимает"
он и не должен их "понимать"

вы запросы пишите в query.sql.text
query передает их через connection в базу
там он выполняется и возвращается результат, если есть

покажите как вы выполняете запрос
0
4 / 4 / 2
Регистрация: 22.10.2012
Сообщений: 78
05.04.2016, 13:50  [ТС]
В основном таким образом:

Delphi
1
2
3
4
ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('SELECT Result.id_result, Result.Total, Team.id_team, Team.Name_team, Sport.id_sport, Sport.Name_sport');
  ADOQuery1.SQL.Add('FROM Team INNER JOIN (Sport INNER JOIN Result ON Sport.id_sport = Result.Sport_result)ON Team.id_team = Result.Team_result ORDER BY Sport.Name_sport, Result.Total');
  ADOQuery1.Active:=True;
Добавлено через 1 минуту
этот запрос не относится к переоформлению таблиц, просто как пример представил, как я выполняю запросы
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
05.04.2016, 13:51
отлично, а с PIVOT что не так?
0
4 / 4 / 2
Регистрация: 22.10.2012
Сообщений: 78
06.04.2016, 08:19  [ТС]
не пойму что было не так, записал сейчас текст в ADODataSet и запрос выполнился почти как нужно. Попробую снова через ADOQuery оформить. Полтергейст

Добавлено через 5 минут
Вот блин, пока с умным человеком не пообщаешься ничего не получается. Все норм вышло и через ADOQuery и через ADODataSet. Только к товарному виду нужно привести, а то у меня в таблицах все кодами записано, нужно текстом чтобы отображалось.

Добавлено через 18 часов 13 минут
Как сделать, чтобы заголовки столбцов были по середине. При выполнении запроса он выводит их слева и ширину столбца делает одинаковой. Количество столбцов изначально не будет стандартным, по мере занесения новых данных они будут добавляться.
Если таблица с фиксированным набором столбцов, то эта проблема решаема, а тут не пойму как сделать.

Текст выполнения перекрестного запроса (на всякий случай):
Delphi
1
2
3
4
ADOQuery1.SQL.Clear;
 ADOQuery1.SQL.Add('TRANSFORM Sum(Result.Total) AS Total SELECT Team.Name_team AS Команда, Sum(Result.Total) AS Результат');
 ADOQuery1.SQL.Add('FROM Team INNER JOIN (Sport INNER JOIN Result ON Sport.id_sport = Result.Sport_result)ON Team.id_team = Result.Team_result GROUP BY Team.Name_team PIVOT Sport.Name_sport');
 ADOQuery1.Active:=True;
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
06.04.2016, 09:19
Цитата Сообщение от Николай Спешил Посмотреть сообщение
Как сделать, чтобы заголовки столбцов были по середине.
по середине чего?

Цитата Сообщение от Николай Спешил Посмотреть сообщение
При выполнении запроса он выводит их слева
кто он?
0
4 / 4 / 2
Регистрация: 22.10.2012
Сообщений: 78
06.04.2016, 10:30  [ТС]
Решил проблему:
Delphi
1
2
 for i:= 0 to DBGrid2.Columns.Count-1 do DBGrid2.Columns.Items[i].Alignment :=taCenter;
 for i:= 0 to DBGrid2.Columns.Count-1 do DBGrid2.Columns.Items[i].Title.Alignment :=taCenter;
Добавлено через 2 минуты
DBGrid заголовки ставил по слева
0
06.04.2016, 10:31

Не по теме:

человек который знает что такое PIVOT использует DBGRID
=-O

0
4 / 4 / 2
Регистрация: 22.10.2012
Сообщений: 78
06.04.2016, 10:33  [ТС]
Как-то отсортировать запрос нужно по полю Sum(Result.Total), стандартным способом не дает. Может как-то обойти можно другим способом?
Миниатюры
Создание сгруппированной таблицы или запроса  
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
06.04.2016, 10:35
Цитата Сообщение от Николай Спешил Посмотреть сообщение
Как-то отсортировать запрос нужно по полю Sum(Result.Total)
почему бы не написать все таки хранимку?
в ней делайте ваш PIVOT, данные вставляйте в пустую таблицу, сортируете и выводите в DBGrid обычным SELECT
0
4 / 4 / 2
Регистрация: 22.10.2012
Сообщений: 78
06.04.2016, 10:40  [ТС]
Я не знаю что такое хранимка
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
06.04.2016, 10:57
хранимка это как процедура в дельфи

Цитата Сообщение от Николай Спешил Посмотреть сообщение
Я не знаю что такое хранимка
это же не повод узнать?
у тебя есть интернет, в котором есть книжки, в которых есть все
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.04.2016, 10:57
Помогаю со студенческими работами здесь

Создание таблицы из запроса по кнопке формы
Есть запрос, который создает таблицу текст запроса: SELECT Cstr(S.Арт) AS Арт, S. AS ТОВАР, S. AS TRynok, S.ТН,...

Создание запроса на создание таблицы
Привет всем форумчане! У меня ест такая проблема, в аксеси находится таблица 1 _____________ |_id__|_rabst_| 1 abs...

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

Сохранение SQL запроса на создание таблицы в VS2012
Только начал изучать технологии ADO.NET по книге Троелсена. На данный момент нету практически никакого опыта работы с БД. Проблема возникла...

Создание запроса на добавление таблицы с существующими связями
Существует запрос на объединение данных из двух таблиц. Из него запросом создается таблица с заменой уже существующей. Есть ли возможность...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
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
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru