Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.11;
Скачать: CL | DM;

Вниз

Сумма элементов открытого запроса   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.028 c
8-1110701414
Tirex
2005-03-13 11:10
2005.07.11
Наложение текстуры


3-1116933473
JaVa73
2005-05-24 15:17
2005.07.11
Просмотр данных из базы mysql


14-1118120846
Девелопер
2005-06-07 09:07
2005.07.11
Утилиты для защиты от отладки и(или) запутывания модуля.


1-1118391928
Игорь Степанов
2005-06-10 12:25
2005.07.11
Чем заменить метод FloodFill, отсутствующий у QRDBChart.Canvas


6-1112673037
Anton M. Ivanov
2005-04-05 07:50
2005.07.11
порт 80 занят.