Форум: "Базы";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];
ВнизСумма элементов открытого запроса Найти похожие ветки
← →
PalPalych (2005-05-23 00:32) [0]Добрый вечер.
Такая ситуация: Имеется компонент Query.Запрос меняется при изменении значений одного из нескольких GroupBoxов. Данные, отсортированные в соответствии с выбранными значениями переключателей, отображаются в DBGrid. Необходимо, чтобы каждый раз, после изменения запроса, находилась сумма элементов некоторого поля, согласно выбранным параметрам.
Возможно ли этого добиться?
Заранее благодарю.
← →
Zacho © (2005-05-23 00:41) [1]Возможно.
А в чём собственно проблема ?
Hint: опиши свою задачу подробнее. Конкретно в чём проблема ? И что такое "элементы некоторого поля" ? Вообще-то, поля должны быть атомарны :)
← →
PalPalych (2005-05-23 00:52) [2]Проще говоря, к примеру таблица видеофильмов, я выбираю жанр фильма, и при этом отображаются фильмы только этого жанра. И надо посчитать общую стоимость всех фильмов этого жанра. При выборе другого жанра, чтобы сразу менялась сумма....
Вычисляемое поле создал, но занести туда необходимое значение не удаётся.
← →
Zacho © (2005-05-23 01:06) [3]PalPalych (23.05.05 0:52) [2]
Всё равно в вопросе не хватает необходимой информации для ответа. Приведи струкуру БД, и наконец-то напиши в чём именно проблема ?
Какая СУБД ? Какие компоненты доступа ? Как построена программа ?
P.S. Мне сейчас скучно, так что если хочешь - высылай исходники мне на мыло. Но если я не отвечу - не обижайся.
← →
Lexa (2005-05-23 02:23) [4]SELECT столбец наименований, SUM(столбец количества)
FROM таблица(ы), которая содержит эти столбцы
GROUP BY столбец наименований
GO
← →
Zacho © (2005-05-23 02:25) [5]Lexa (23.05.05 2:23) [4]
А что такое GO ?
:-P
← →
Lexa (2005-05-23 02:31) [6]Это привычка от SQL Server
← →
Zacho © (2005-05-23 02:38) [7]Lexa (23.05.05 2:31) [6]
Бросай такие привычки :) Кстати, не забывай добавлять MS.
А то, знаешь ли SQL-серверов много есть.
← →
Lexa (2005-05-23 02:46) [8]Извини, забыл добавить, но чуствуется ты быстро раскусил о каком идет речь ... помойму GO только в нем существует
← →
msguns © (2005-05-23 10:53) [9]Для полученя сумм можно, к примеру, воспользоваться технологией вложения запросов, создав временный запрос по образу
with TADOQuery.Create(nil) do
begin
Connection := MyQuery.Connection;
SQL.Text := "SELECT SUM(<Поле 1>), SUM(<Поле 2>),... FROM "+
MyQuery.SQL.Text;
Open;
EditSum1.Text := Fields[0].AsString;
EditSum2.Text := Fields[1].AsString;
...
Close;
Free;
end;
Вставить этот код в процедуру, переоткрывающую основной НД (MyQuery)
← →
msguns © (2005-05-23 11:32) [10]SQL.Text := "SELECT SUM(<Поле 1>), SUM(<Поле 2>),... FROM ("+
MyQuery.SQL.Text+")";
← →
Sergey13 © (2005-05-23 11:37) [11]2PalPalych (23.05.05 00:32)
Поставь EHLib -овский грид и наслаждайся безо всяких телодвижений. 8-)
http://www.ehlib.com/RUS/default.htm
← →
msguns © (2005-05-23 13:25) [12]>Sergey13 © (23.05.05 11:37) [11]
Чему учишь пацанов ?
А потом удивляемся, откуда берутся любители шары ;P
← →
PalPalych (2005-05-23 19:07) [13]Спасибо всем за участие.
msguns ©, спасибо за идею. Правда возникает ошибка в строке:Connection := Query1.Connection;
.
без этой строки запускается, но работает некоректно. Не подскажешь, в чём может быть причина?
← →
Плохиш © (2005-05-23 19:28) [14]PalPalych (23.05.05 19:07) [13]
Спасибо всем за участие.
msguns ©, спасибо за идею. Правда возникает ошибка в строке:
Connection := Query1.Connection;.
Прям так и говорит "Ошибка" и больше ничего?
← →
PalPalych (2005-05-23 19:38) [15]undeclared idenfier: "Connection".
Более того не узнаёт свойство Connection и у других элементов TQuery.
← →
Плохиш © (2005-05-23 19:43) [16]>PalPalych (23.05.05 19:38) [15]
TQuery + F1, Там изучаешь свойства до прояснения. (Database)
← →
PalPalych (2005-05-23 22:55) [17]Всё, разобрался. Всем принявшим участие большое спасибо.
← →
msguns © (2005-05-24 09:45) [18]Так и не понял про компоненты доступа. Если это BDE, то вложенный запрос SELECT FROM SELECT не прокатит ! В этом случае надо либо сканировать НД, предварительно его заблокировав, (что имхо, не по-джидайски), либо хитро создавать новый запрос, парсируя исходный (если все в дезайне, то можно, конечно, положить еще один TQuery, который и настроить аналогично исходному, но сам запрос зделать агрегатным. Что, имхо, тоже непрофессионально) ;)
← →
PalPalych (2005-05-24 14:00) [19]msguns © (24.05.05 09:45),
(если все в дезайне, то можно, конечно, положить еще один TQuery, который и настроить аналогично исходному, но сам запрос зделать агрегатным. Что, имхо, тоже непрофессионально) ;)
Именно так я и поступил!
Хоть и не професионально, зато работает!!!
Ещё раз спасибо за помощь!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.039 c