2017-01-19 2 views
0

Я новичок в SQL и создал базу данных в Lazarus и языке pascal. В настоящее время я использую SQLlite3. До сих пор я создал базу данных с текущими активами и обязательствами (целыми числами) бизнеса, однако мне нужно создать алгоритм, который разделил бы эти два числа и ввел «соотношение» этих двух чисел в новую таблицу, любая помощь будет оценена по достоинству.SQLlite Алгоритм для разделения двух столбцов таблицы и вывода числа в новую таблицу

много спасибо.

ответ

0

СКП ниже создает две 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 для его выполнения против базы данных.

Смежные вопросы