СКП ниже создает две SQLITE таблицы
Компании с колоннами CompanyID, активы и обязательства
CompanyAL с колоннами CompanyID и коэффициента (от Liabilites к активам)
Это то заполняющий Таблица компаний с несколькими рядами, затем использует
insert into ... select ...
, чтобы вставить отношение активов/обязательств в таблицу CompanyAL.
Важно: В Sqlite символ «divide», /
, дает целочисленный результат по умолчанию и поэтому дает значения Ratio 0 и 2. Чтобы преодолеть это, вам нужно использовать выражение, которое умножает результат на 1.0 ; Я сделал это в числителе и деноминации для выражения для вычисления значения в столбце Ratio.
CREATE TABLE "main"."Companies" ("CompanyID" INTEGER PRIMARY KEY NOT NULL check(typeof("CompanyID") = 'integer') , "Assets" INTEGER check(typeof("Assets") = 'integer') , "Liabilities" INTEGER check(typeof("Liabilities") = 'integer'));
CREATE TABLE "main"."CompanyAL" ("CompanyID" INTEGER PRIMARY KEY NOT NULL check(typeof("CompanyID") = 'integer') , "Ratio" FLOAT);
insert into Companies(CompanyID, Assets, Liabilities) values(1, 100, 50);
insert into Companies(CompanyID, Assets, Liabilities) values(2, 50, 100);
insert into CompanyAL select CompanyID, (Liabilities * 1.0/Assets * 1.0) from Companies
Испытано для Sqlite с помощью Sqlite Manager
надстройки для Firefox. Очевидно, что в вашем приложении Lazarus вы должны построить необходимый код Sql и использовать подходящий компонент db для его выполнения против базы данных.