Topic: Два вычисляемых поля и их отображение в TableGrid

Добрый день, Дмитрий!
Не могу разобраться с довольно элементарной вещью.
Допустим, я делаю простую базу, где фиксируются показания какого-то прибора, в нём числовые поля предыдущего показания, текущего показания, тарифа, плюс 1) вычисляемое поле (разность показаний) и 2) вычисляемое поле произведения (разности показаний и тарифа). Все поля отображаются в TableGrid. При запуске ошибка, что нет такого поля (разницы). Убираю из TableGrid столбец с отображением произведения - всё работает нормально. Догадываюсь, что эта ошибка - следствие того, что я не совсем понимаю, как работают вычисляемые поля в БД.  Можете подсказать, что я делаю неправильно?
Что бы было проще понять мой вопрос я набросал простой пример.

Post's attachments

Attachment icon Counter.zip 333.56 kb, 362 downloads since 2017-09-08 

Re: Два вычисляемых поля и их отображение в TableGrid

Hello Mcsimm,
You can not use a calculated field in another calculation.
вы не можете использовать вычисляемое поле в другом расчете.  вместо этого попробуйте
summary.rate * (summary.currReading - summary.PrevReading)
Derek.

Post's attachments

Attachment icon Counter.zip 336.29 kb, 365 downloads since 2017-09-08 

3 (edited by mcsimm 2017-09-08 11:09:53)

Re: Два вычисляемых поля и их отображение в TableGrid

derek wrote:

Hello Mcsimm,
You can not use a calculated field in another calculation.
вы не можете использовать вычисляемое поле в другом расчете.  вместо этого попробуйте
summary.rate * (summary.currReading - summary.PrevReading)
Derek.

Спасибо!
Что называется, решение лежало на поверхности, причём очень простое.
Решил немного подредактировать свой ответ.  В задачах простых, где в вычисляемом поле 4-5 "участника", всё просто. А если конечный результат формируется из 20-30 условий? Выносить промежуточные результаты в другие таблицы? использовать скрипты? посоветуйте, пожалуйста, новичку.

Re: Два вычисляемых поля и их отображение в TableGrid

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

Dmitry.

Re: Два вычисляемых поля и их отображение в TableGrid

Допустим, счётчик из моего примера - это электросчётчик, и я считаю общую сумму за электроэнергию по 50 квартирам, имея на руках начальные и конечные показания каждой квартиры. Понятно, что можно сделать вычисление Итог = Тариф*(ПоказанияКон.Кв1-ПоказанияНач.Кв1)+.......+Тариф*(ПоказанияКон.Кв50-ПоказанияНач.Кв50). Пример из головы, кончено, но даже мне, не программисту, понятно, что это корявое решение. Просто любопытно - как грамотные разработчики БД решают подобные задачи?

Re: Два вычисляемых поля и их отображение в TableGrid

Hello Mcsimm,
извините, но я не говорю по-русски - но, возможно, вы можете попробовать что-то подобное.
пожалуйста, изучите пример, который я включил.
(Sorry but I don't know much russian but maybe you can try something like this.  Please read the example I have included).
Derek.

Post's attachments

Attachment icon Counter2.zip 339.13 kb, 406 downloads since 2017-09-09 

Re: Два вычисляемых поля и их отображение в TableGrid

Derek, thanks for the help, interested to see Your example!