Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
3-1117107578
stud
2005-05-26 15:39
2005.07.11
знатокам dxmasterview


3-1117022712
ANB
2005-05-25 16:05
2005.07.11
Как лучше построить безопасность БД ? (Oracle)


6-1112097854
Laboris
2005-03-29 16:04
2005.07.11
Поиск компов с открытым портом


14-1118050027
diwww
2005-06-06 13:27
2005.07.11
отследить, куда пишутся временные файлы


11-1102062843
TraideR
2004-12-03 11:34
2005.07.11
XP Manifest





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский