powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / SQL Delphi - а можно за один проход и подсчить итоги и раскидать значения?
6 сообщений из 6, страница 1 из 1
SQL Delphi - а можно за один проход и подсчить итоги и раскидать значения?
    #32077665
Алекс К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот пример у меня в базе нужно подсчитать итоги по полям и раскидать в конкретное поле значение
отдельно это выглядит так


вот итоги как

HT.SQL.Text := 'SELECT sum(base123."field1"),sum(base123."field2"),sum(base123."field3") FROM base123';
HT.Open;

а вот разноска звычесленых значений
HT.SQL.Text :='UPDATE base123 SET field1=field2+field3';
HT.ExecSQL;


а как сделать чтобы за один раз и то и другое получитьи сделать??

плиз помогите
...
Рейтинг: 0 / 0
SQL Delphi - а можно за один проход и подсчить итоги и раскидать значения?
    #32077676
Фотография KirillovA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой файл?
Какой сервер?
Какая делфя?
Через что ходишь к файлу?
Я НЕ УСТАНУ ЭТО ПОВТОРЯТЬ - пишите - да читаемо/отвечаемы будете - мы не имеем разумения угадывать че Вы там юзаете!
...
Рейтинг: 0 / 0
SQL Delphi - а можно за один проход и подсчить итоги и раскидать значения?
    #32077684
Алекс К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вопрос о состовлении запроса на компоненте TQuery

есть дава запроса они рабочие
1 запрос такого характера
Query.SQL.Text := 'SELECT sum(base123."field1"),sum(base123."field2"),sum(base123."field3") FROM base123';
Query.Open;

этот запрос подсчитывает итоги в базе base123 по полям

2 запрос такого характера
Query.SQL.Text :='UPDATE base123 SET field1=field2+field3';
Query.ExecSQL

этот запрос заносит занчение суммы полей field2 и field3 в field1 по каждой записи базы

ТАК Вот хочеться узнать
как мне за одну операцию сделать и подсчет и тогов и подсчет суммы полей 2 и 3 с занесением оной в поле 1
а другими словами как мгне объеденить зпрос 1 и запрос 2 в некий запрос 3 ,который при выполнении сделает задание и по первому и по второму запросу ..
...
Рейтинг: 0 / 0
SQL Delphi - а можно за один проход и подсчить итоги и раскидать значения?
    #32077687
Фотография KirillovA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и дела!
Не буду повторять. Синтаксис SQL отличается в зависимости от того чем и куда ходишь. Черти полосатые! ANSI-92 различается в стороно улучшения эффективности в зависимости от инструмента, платформы, сервера, а не только версии делфи. Ладно вот по ANSI-92 - а там сами сношайтесь в нужном вам направлении ! (если лень написать что за инструмент):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
update таблица
set    сумма1 = sum (поле1),
       ...
       суммаX = sum (полеX)
group by
       поле1,
       ...
       полеX


а можете в цикле суммировать - работать будет быстрее!
...
Рейтинг: 0 / 0
SQL Delphi - а можно за один проход и подсчить итоги и раскидать значения?
    #32077688
Фотография KirillovA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разумеется в группировке - группировать по тем полям, которые характеризуют сумму.
Код: plaintext
1.
2.
3.
...
group by
       товарX
...
Рейтинг: 0 / 0
SQL Delphi - а можно за один проход и подсчить итоги и раскидать значения?
    #32077714
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Алекс К.

Почитайте хотя бы ОДНУ книжку по SQL (или Delphi + SQL).
Перестаньте называть "база" - ТАБЛИЦА
Пишите сразу конкретно все делали вопроса


Так и не понятно, какие итоги куда вставляются. Как зависят 1 и 2-ой запросы........
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / SQL Delphi - а можно за один проход и подсчить итоги и раскидать значения?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]