Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.07.17;
Скачать: [xml.tar.bz2];

Вниз

Итоговые строки в таблице.   Найти похожие ветки 

 
_zerg   (2003-06-21 11:15) [0]

Здравствуйте!

Подскажите пожалуйста, как можно организовать следующее:
имеется таблица
Наименование1 ... ... Сумма1
Наименование2 ... ... Сумма2
Наименование3 ... ... Сумма3
...

так вот, некоторые из сумм должны складываться из других, т.е., напр., Сумма2 = Сумма3 + Сумма1
т.е. как бы вычисляемая строка, а не поле

Может кто-то видел статьи на эту тему?

Спасибо!


 
Наталия   (2003-06-21 11:30) [1]

А по какому принципу производится сложение?


 
XanderMan   (2003-06-21 11:39) [2]

Не совсем понятна задача


 
Anatoly Podgoretsky   (2003-06-21 11:43) [3]

Вычисляемые поля


 
XanderMan   (2003-06-21 11:51) [4]

>Вычисляемые поля

Здесь получается, что в одном случае поле обычное, а в другом - вычисляемое. Непонятен принцип, по которому должно проводиться суммирование. Кроме того, имхо, данную задачу (получения суммы) необходимо решать, используя агрегатные функции


 
Семен Сорокин   (2003-06-21 11:53) [5]

2_zerg
Может стоит пересмотреть структуру базы данных.


 
MsGuns   (2003-06-21 13:32) [6]

Коварный зерг задал вопрос и слинял ;)))
Следующий _protoss ?


 
_zerg   (2003-06-23 07:39) [7]

я не слинял, просто в инет выхода нет!
сложение должно идти так, что задаются идентификаторы складываемых строк в др. таблице (1233+342-222=3243+111-9999), правдо я ещё не определился как их хранить, вот поэтому и спрашиваю как можно решить такую задачу!


 
Rol   (2003-06-23 07:50) [8]

Таблица правил сложения:
RULE_ID - это понятно
RULE_VALUE - а здесь - правило, например: ID1+ID2+...+IDn, где IDi - ID из таблицы с суммами.
Плюс хранимая процедура. Решение, безусловно, далеко не оптимальное, но это первое, что пришло в голову.


 
Zacho   (2003-06-23 10:19) [9]

Самое простое - перейти на FB 1.5 в котором есть EXECUTE STATEMENT, иначе придется это делать на клиенте.


 
Соловьев   (2003-06-23 10:22) [10]


> 1233+342-222=3243+111-9999

а где тут сумма?


 
Sandman25   (2003-06-23 10:32) [11]

Если сумма уже записана в таблицу, то зачем ее еще раз рассчитывать?


 
_zerg   (2003-06-24 08:46) [12]

идут строки с суммами и в конце идёт итог. строка
далее идут снова строки и снова итог. стр.
затем итог по всем итогам. стр.


 
ЮЮ   (2003-06-24 08:51) [13]

И где они так ходят? Во всех Report-ах это обычно заложено. Или ты хочешь всё это в DBGride, да ещё с возможностью редактировать?


 
ЮЮ   (2003-06-24 09:06) [14]

Объединить результаты нескольких запросов, возвращающих итоги разной глубины детализации. Првда это возможно при нормальной структуре данных. А судя по

"cложение должно идти так, что задаются идентификаторы складываемых строк в др. таблице (1233+342-222=3243+111-9999), правдо я ещё не определился как их хранить, вот поэтому и спрашиваю как можно решить такую задачу!"

вряд ли у тебя выйдет :-(




 
Danilka   (2003-06-24 09:39) [15]

хех, видимо, хочется бланк бух.баланса в ДБГрид загнать..

или нет? обьясни задачу по-человечески, а не загадками


 
интересующийся   (2003-06-24 09:40) [16]

есть компонент grida от devexpress
там можно промежуточные итоги показывать и др.
называется expressquantumgrid
ищи...


 
_zerg   (2003-06-24 10:45) [17]

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

на счёт плохой структуры, возможно, но я ж просил подсказать, если кто имеет какие-то мысли.


 
Danilka   (2003-06-24 10:49) [18]

_zerg (24.06.03 10:45)
для этого, думаю, тебе нужен не ДБГрид, а обычный грид, есть, гриды которые понимают формулы в ячейках, поищи на торри.нет.


 
Anatoly Podgoretsky   (2003-06-24 10:50) [19]

XanderMan © (21.06.03 11:51)
Так не получается, а получается, что всегда расчетное.

В одних случаях Сумма1 = Сумма1, в других Сумма2 = Сумма3 + Сумма1


 
интересующийся   (2003-06-24 11:43) [20]

_zerg
> Подскажите пожалуйста, как можно организовать следующее:
>имеется таблица
>Наименование1 ... ... Сумма1
>Наименование2 ... ... Сумма2
>Наименование3 ... ... Сумма3

по твоей задаче, вроде надо еще две таблицы создать
в первой - "группы сумм"
во второй - связь между суммами и "группами сумм"


 
интересующийся   (2003-06-24 11:47) [21]

это лучше, чем вычисляемые поля
всегда можно будет изменить принадлежность суммы
той или иной "группе сумм"
(надо же придумать такое - группа сумм)


 
_zerg   (2003-06-24 12:46) [22]

да мне особо-то и не ДБ грид нужен, мне нужно чтобы эти строки в таблице хранились и пересчитывались при изменениях тех, от которых они зависят.


 
_zerg   (2003-06-24 12:48) [23]

интересующийся
>по твоей задаче, вроде надо еще две таблицы создать
>в первой - "группы сумм"
>во второй - связь между суммами и "группами сумм"

а пересчёт? в тригере или как?


 
интересующийся   (2003-06-24 13:13) [24]

_zerg
>а пересчёт? в тригере или как?

запрос с группировкой




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

Форум: "Базы";
Текущий архив: 2003.07.17;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.01 c
6-55673
ZKK
2003-05-10 07:56
2003.07.17
IRC клиент


14-55795
Malder
2003-06-27 19:39
2003.07.17
Предложения по организации форума


6-55680
Kisly
2003-05-09 13:51
2003.07.17
7.0


14-55842
A0th
2003-06-27 23:30
2003.07.17
Антивирус


4-55906
Mischka
2003-05-14 07:36
2003.07.17
Приход / уход мыши





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский