|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Сумма подчиненной таблицы в главную
Ае почаны. Научите складывать. Нужно сложить все значения полей PRICE в дочерней таблице и занести эту сумму в главную таблицу.
Я правильно понял поле PRICE в главной таблице нужно делать вычисляемым? А что делать потом? Какими ивентами пользоваться и т.д.? Чето вообще незнаю. Буду благодарен, если поможете сделать все это дело для моего примера. Firebird Delphi XE7 Таблицы выводятся через Query. Название компонентов: -Таблица(главная) OOC - QOOC -Таблица(дочерняя) OOC_MC - QOOC_MC QOOC_MC связанна с QOOC через MasterFields с полями ID_OOC в главной и дочерней таблицах. Последний раз редактировалось gewasop, 05.05.2015 в 22:36. |
#2
|
|||
|
|||
Считай в запросе главной таблицы (если это только отображение):
Код:
SELECT m.*, sum(d.price) as PRICE from master_table m left join detail_table d on m.id = d.master_id group by m* -- здесь перечислить поля галвной табл |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
gewasop (06.05.2015)
|
#3
|
|||
|
|||
Ток сделал и увидел твой пост. Сделал подругом немного. Незнаю на сколько правильно, но пока все работает. Просто сам SQL не особо знаю, раньше не имел дело с ним.
Код:
procedure Tfdm.QOOCCalcFields(DataSet: TDataSet); var tmpc: string; begin tmpc := QOOC.FieldByName('ID_OOC').AsString; qqry.SQL.Clear; qqry.SQL.Add('SELECT SUM(PRICE) FROM OOC_MC WHERE ID_OOC=' + Trim(tmpc)); qqry.Open; if qqry.Fields[0].AsString <> '' then QOOC.FieldByName('PRICE').Value := qqry.Fields[0].AsString; end; Последний раз редактировалось gewasop, 06.05.2015 в 03:40. |