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

Вниз

IBDataset и аггрегатные функции   Найти похожие ветки 

 
fedor   (2005-08-21 19:00) [0]

Привет всем. Подскажите кто-нибудь как правильно использовать аггрегатные функции в IBDataset. В книжках толкового описания этого нет, да и в сети бедновато(а может не видел). Сам же делаю так:добавляю поле,тип Aggregat, в поле Expression пишу   sum(имя_поля), указываю ключевое поле, Active=true. Вешаю на DBText-при запуске ничего нет. Может что не так?


 
_dimka ©   (2005-08-22 09:22) [1]

select sum(имя_поля) as name from table вроде так


 
fedor   (2005-08-22 17:39) [2]

Дело в том, чтобы значение суммы еще и в DBGride отображалось.Т.е. для каждой записи есть данные в присоединенной таблице по которым и получаем сумму. Но ведь если в компоненте есть возможность сосдавать такие аггрегатные поля, мне кажется удобнее использовать их. Вот только бы научиться их использовать. ХЭЛП!!!


 
stone ©   (2005-08-22 17:42) [3]


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

Эту сумму надо получать именно в запросе.


 
fedor   (2005-08-22 18:00) [4]

Запрос на отобюражение таблицы например select * from table. А как же каждый раз еще и запрос на получение суммы делать, а потом снова select * from table? Ну геморно же это. Все же компонент гибче


 
stud ©   (2005-08-22 18:02) [5]


> Эту сумму надо получать именно в запросе.


> select sum(имя_поля) as name from table вроде так


 
P.N.P. ©   (2005-08-22 18:09) [6]

>fedor   (22.08.05 18:00) [4]
Сумма чего именно нужна?
Если всех значений поля в таблице - то это как-то странно.
Зачем в каждой записи показывать сумму по столбцу?


 
fedor   (2005-08-22 19:12) [7]


> P.N.P.

Подробно: есть таблица_1, в ней данные клиентов(id,фото и т.д.), к ней присоединена таблица_2, в которой у каждого клиента допустим потрачениые деньги по датам. В гриде_1 отображена таблица_1, а в гриде_2 - таблица_2 и сумма по каждому клиенту из таблица_1.


 
P.N.P. ©   (2005-08-22 20:56) [8]

>fedor   (22.08.05 19:12) [7]
Мастер-деталь получается?
Ну, тогда нет проблем - в гриде_2 отображаем запрос
select
 t2.field1,t2.field2..t2.fieldN,sum(t1.summa)
from таблица_2 t2
  left outer join таблица_1 t1 on t2.код_клиента=t1.ID
group by t2.field1,t2.field2..t2.fieldN
что-то в этом роде.
К стати, в папке ...\delphi7\demos\ есть примеры.


 
fedor   (2005-08-23 13:29) [9]

Люди, но всеже, неучто с управлением аггрегатными функциями через коммпонент никто незнаком?


 
Sergey13 ©   (2005-08-23 13:44) [10]

2[9] fedor   (23.08.05 13:29)
Каким компонентом то тебе хочется? И что значит "управлением аггрегатными функциями"?
То что ты описАл в [7] под силу только ДевелоперЭкспрессовскому гриду, насколько я знаю. Но он стОит немалых денег и разобраться с ним не очень то просто.
Посмотри в сторону EhLib-овского грида - бесплатен для хСССР до версии 3.6. если качать отсюда
http://www.ehlib.com/RUS/default.htm
Там можно добавить подвал с агрегатами по набору данных (по всему).


 
stud ©   (2005-08-23 13:57) [11]


> Люди, но всеже, неучто с управлением аггрегатными
> функциями через коммпонент никто незнаком?

а в чем заключается управление агрегатными функциями???
неужели такая проблема написать простенький запрос? тем более что уже и примеры привели
в чем проблема-то?
связь мастер-деталь по ид клиента и все! делов-то


 
fedor   (2005-08-26 12:45) [12]

Проблема в том что мне нужно отображать значение суммы столбца в CtrlGrid"е. А в нем можно только через DBText, а результат запроса на суммирование не вывести через DBText.
Есть еще вопрос: почему после IBDataSet.DisableControl изменяется результат пересчета суммы столбца перебором First-Next?


 
Sergey13 ©   (2005-08-26 13:08) [13]

2 fedor
>Дело в том, чтобы значение суммы еще и в DBGride отображалось.
>Проблема в том что мне нужно отображать значение суммы столбца в CtrlGrid"е
Так что тебе нужно то? Ты на пальцах хоть объясни - без умных слов типа "управление аггрегатными функциями".


 
fedor   (2005-08-26 20:51) [14]

Сорри,я опечатался насчет DBGrid"а. Записи отбражаются в CtrlGride. У каждой записи сумма приходящих средств, сумма уходящих средств, разница между ними.


 
Sergey Masloff   (2005-08-26 21:17) [15]

Sergey13 ©   (26.08.05 13:08) [13]
Да че объяснять - в клиентском дейтасете поддерживаются свои агрегатные функции. Только в IB клайент дейтасете они глючат.

опс... тут про обычный дейтасет... Пардон сам лоханулся...


 
fedor   (2005-08-26 21:36) [16]

В принципе я решил одну проблему с помощью EhLib"а. Мучает другое теперь:почему после IBDataSet.DisableControl результат пересчета суммы столбца перебором First-Next отличается от того же пересчета при IBDataSet.EnableControl?



Страницы: 1 вся ветка

Текущий архив: 2005.10.09;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.029 c
4-1123768084
chili
2005-08-11 17:48
2005.10.09
Kак мне из dll запустить внешнию программу?


14-1127192654
Бугага
2005-09-20 09:04
2005.10.09
Интеграция науки и образования


2-1125308192
Zikmu
2005-08-29 13:36
2005.10.09
Запуск приложений


6-1118819383
DVYdm
2005-06-15 11:09
2005.10.09
Доступ к БД Firebird в Apache Server


5-1101811719
Anatoly
2004-11-30 13:48
2005.10.09
Открытие формы в design-time