SQLize
Online
/
PHPize Online
/
SQLtest Online
A
A
A
Share
Donate
Blog
Popular
Donate
A
A
A
Share
Blog
Popular
SQLize.online is a free online SQL environment for quickly running, experimenting with and sharing code.
You can run your SQL code on top of the most popular RDBMS including MySQL, MariaDB, SQLite, PostgreSQL, Oracle and Microsoft SQL Server.
SQL code:
Upload
Copy
Format
Clear
CREATE TABLE clients ( id number(10) NOT NULL PRIMARY KEY, name varchar2(1000), place_of_birth varchar2(1000), date_of_birth date, adress varchar2(1000), passport varchar2(100) ); CREATE TABLE tarifs ( id number(10) NOT NULL PRIMARY KEY, name varchar2(100), cost number(10,2) ); CREATE TABLE product_type ( id number(10) NOT NULL PRIMARY KEY, name varchar2(100), begin_date date, end_date date, tarif_ref number(10) NOT NULL, CONSTRAINT prod_type_tar_fk FOREIGN KEY (tarif_ref) REFERENCES tarifs(id) ); CREATE TABLE products ( id number(10) NOT NULL PRIMARY KEY, product_type_id number(10) NOT NULL, name varchar2(100), client_ref number(10) NOT NULL, open_date date, close_date date, CONSTRAINT prod_prodtype_fk FOREIGN KEY (product_type_id) REFERENCES product_type(id), CONSTRAINT prod_cl_fk FOREIGN KEY (client_ref) REFERENCES clients(id) ); CREATE TABLE accounts ( id number(10) NOT NULL PRIMARY KEY, name varchar2(100), saldo number(10, 2), client_ref number(10) NOT NULL, open_date date, close_date date, product_ref number(10) NOT NULL, acc_num varchar2(25), CONSTRAINT acc_cl_fk FOREIGN KEY (client_ref) REFERENCES clients(id), CONSTRAINT acc_prod_fk FOREIGN KEY (product_ref) REFERENCES products(id) ); CREATE TABLE records ( id number(10) NOT NULL PRIMARY KEY, dt number(1), sum number(10, 2), acc_ref number(10) NOT NULL, oper_date date, CONSTRAINT rec_acc_fk FOREIGN KEY (acc_ref) REFERENCES accounts(id) ); insert into tarifs values (1,'Тариф за выдачу кредита', 10); insert into tarifs values (2,'Тариф за открытие счета', 10); insert into tarifs values (3,'Тариф за обслуживание карты', 10); insert into product_type values (1, 'КРЕДИТ', to_date('01.01.2018','DD.MM.YYYY'), null, 1); insert into product_type values (2, 'ДЕПОЗИТ', to_date('01.01.2018','DD.MM.YYYY'), null, 2); insert into product_type values (3, 'КАРТА', to_date('01.01.2018','DD.MM.YYYY'), null, 3); insert into clients values (1, 'Сидоров Иван Петрович', 'Россия, Московская облать, г. Пушкин', to_date('01.01.2001','DD.MM.YYYY'), 'Россия, Московская облать, г. Пушкин, ул. Грибоедова, д. 5', '2222 555555, выдан ОВД г. Пушкин, 10.01.2015'); insert into clients values (2, 'Иванов Петр Сидорович', 'Россия, Московская облать, г. Клин', to_date('01.01.2001','DD.MM.YYYY'), 'Россия, Московская облать, г. Клин, ул. Мясникова, д. 3', '4444 666666, выдан ОВД г. Клин, 10.01.2015'); insert into clients values (3, 'Петров Сиодр Иванович', 'Россия, Московская облать, г. Балашиха', to_date('01.01.2001','DD.MM.YYYY'), 'Россия, Московская облать, г. Балашиха, ул. Пушкина, д. 7', '4444 666666, выдан ОВД г. Клин, 10.01.2015'); insert into products values (1, 1, 'Кредитный договор с Сидоровым И.П.', 1, to_date('01.06.2015','DD.MM.YYYY'), null); insert into products values (2, 2, 'Депозитный договор с Ивановым П.С.', 2, to_date('01.08.2017','DD.MM.YYYY'), null); insert into products values (3, 3, 'Карточный договор с Петровым С.И.', 3, to_date('01.08.2017','DD.MM.YYYY'), null); insert into accounts values (1, 'Кредитный счет для Сидоровым И.П.', -2000, 1, to_date('01.06.2015','DD.MM.YYYY'), null, 1, '45502810401020000022'); insert into accounts values (2, 'Депозитный счет для Ивановым П.С.', 6000, 2, to_date('01.08.2017','DD.MM.YYYY'), null, 2, '42301810400000000001'); insert into accounts values (3, 'Карточный счет для Петровым С.И.', 8000, 3, to_date('01.08.2017','DD.MM.YYYY'), null, 3, '40817810700000000001'); insert into records values (1, 1, 5000, 1, to_date('01.06.2015','DD.MM.YYYY')); insert into records values (2, 0, 1000, 1, to_date('01.07.2015','DD.MM.YYYY')); insert into records values (3, 0, 2000, 1, to_date('01.08.2015','DD.MM.YYYY')); insert into records values (4, 0, 3000, 1, to_date('01.09.2015','DD.MM.YYYY')); insert into records values (5, 1, 5000, 1, to_date('01.10.2015','DD.MM.YYYY')); insert into records values (6, 0, 3000, 1, to_date('01.10.2015','DD.MM.YYYY')); insert into records values (7, 0, 10000, 2, to_date('01.08.2017','DD.MM.YYYY')); insert into records values (8, 1, 1000, 2, to_date('05.08.2017','DD.MM.YYYY')); insert into records values (9, 1, 2000, 2, to_date('21.09.2017','DD.MM.YYYY')); insert into records values (10, 1, 5000, 2, to_date('24.10.2017','DD.MM.YYYY')); insert into records values (11, 0, 6000, 2, to_date('26.11.2017','DD.MM.YYYY')); insert into records values (12, 0, 120000, 3, to_date('08.09.2017','DD.MM.YYYY')); insert into records values (13, 1, 1000, 3, to_date('05.10.2017','DD.MM.YYYY')); insert into records values (14, 1, 2000, 3, to_date('21.10.2017','DD.MM.YYYY')); insert into records values (15, 1, 5000, 3, to_date('24.10.2017','DD.MM.YYYY')); insert into clients values (4, 'Крылов Виталий Павлович', 'Россия, Московская облать, г. Подольск', to_date('09.11.2000','DD.MM.YYYY'), 'Россия, Московская облать, г. Подольск, ул. Грибоедова, д. 5', '2222 555555, выдан ОВД г. Подольск, 20.11.2020'); insert into clients values (5, 'Петрова Евгения Викторовна', 'Россия, Московская облать, г. Одинцово', to_date('15.01.1990','DD.MM.YYYY'), 'Россия, Московская облать, г. Одинцово, ул. Грибоедова, д. 5', '2222 555555, выдан ОВД г. Одинцово, 30.01.2010'); insert into clients values (6, 'Горин Иван Викторович', 'Россия, Московская облать, г. Дзержинский', to_date('05.03.1976','DD.MM.YYYY'), 'Россия, Московская облать, г. Дзержинский, ул. Грибоедова, д. 5', '2222 555555, выдан ОВД г. Дзержинский, 20.03.1996'); insert into clients values (7, 'Ветров Илья Иванович', 'Россия, Московская облать, г. Дзержинский', to_date('15.06.1996','DD.MM.YYYY'), 'Россия, Московская облать, г. Дзержинский, ул. Грибоедова, д. 5', '2222 555555, выдан ОВД г. Дзержинский, 25.06.2016'); insert into products values (4, 2, 'Депозитный договор с Крыловым В.П.', 4, to_date('01.08.2022','DD.MM.YYYY'), null); insert into products values (5, 2, 'Депозитный договор с Петровой Е.В.', 5, to_date('11.05.2023','DD.MM.YYYY'), null); insert into products values (6, 2, 'Депозитный договор с Гориным И.В.', 6, to_date('01.08.2024','DD.MM.YYYY'), null); insert into products values (7, 1, 'Кредитный договор с Гориным И.В.', 6, to_date('11.09.2024','DD.MM.YYYY'), null); insert into products values (8, 3, 'Карточный договор с Ветровым И.И.', 7, to_date('11.03.2022','DD.MM.YYYY'), null); insert into accounts values (4, 'Депозитный счет для Крылова В.П.', 4000, 4, to_date('01.08.2022','DD.MM.YYYY'), null, 4, '498721104020300650022'); insert into accounts values (5, 'Депозитный счет для Петровой Е.В.', 2000, 5, to_date('11.05.2023','DD.MM.YYYY'), null, 5, '405341104020258650022'); insert into accounts values (6, 'Депозитный счет для Горина И.В.', 5000, 6, to_date('01.08.2024','DD.MM.YYYY'), null, 6, '412641967038758650022'); insert into accounts values (7, 'Кредитный счет для Горина И.В.', -2000, 6, to_date('11.09.2024','DD.MM.YYYY'), null, 7, '490526967048296310022'); insert into accounts values (8, 'Карточный счет для Ветрова И.И.', 15000, 7, to_date('11.03.2022','DD.MM.YYYY'), null, 8, '40320810700013500023'); insert into records values (16, 1, 5000, 4, to_date('09.11.2024','DD.MM.YYYY')); insert into records values (17, 0, 3000, 4, to_date('09.11.2024','DD.MM.YYYY')); insert into records values (18, 1, 1000, 5, to_date('09.11.2024','DD.MM.YYYY')); insert into records values (19, 1, 2000, 6, to_date('09.11.2024','DD.MM.YYYY')); insert into records values (20, 0, 5000, 7, to_date('09.11.2024','DD.MM.YYYY')); insert into records values (21, 1, 3000, 7, to_date('09.11.2024','DD.MM.YYYY')); insert into records values (22, 1, 4000, 8, to_date('09.11.2024','DD.MM.YYYY')); insert into records values (23, 1, 2500, 8, to_date('09.11.2024','DD.MM.YYYY')); insert into records values (24, 0, 3500, 4, to_date('12.12.2024','DD.MM.YYYY')); insert into records values (25, 1, 3000, 4, to_date('15.12.2024','DD.MM.YYYY')); insert into records values (26, 1, 4000, 4, to_date('15.12.2024','DD.MM.YYYY')); insert into records values (27, 0, 2500, 4, to_date('19.12.2024','DD.MM.YYYY')); insert into records values (28, 1, 3500, 4, to_date('30.12.2024','DD.MM.YYYY')); insert into records values (29, 1, 3000, 4, to_date('30.12.2024','DD.MM.YYYY')); insert into records values (30, 1, 4000, 6, to_date('13.12.2024','DD.MM.YYYY')); insert into records values (31, 1, 2500, 6, to_date('13.12.2023','DD.MM.YYYY')); insert into records values (32, 0, 4500, 6, to_date('18.12.2023','DD.MM.YYYY')); SELECT accounts.id, accounts.name, accounts.saldo, accounts.acc_num FROM accounts INNER JOIN products ON accounts.product_ref = products.id INNER JOIN clients ON products.client_ref = clients.id WHERE products.product_type_id = 2 AND NOT EXISTS(SELECT * FROM products WHERE clients.id = products.client_ref AND product_type_id = 1); SELECT products.product_type_id, SUM(records.sum) AS Sum FROM records JOIN accounts ON records.acc_ref = accounts.id JOIN products ON accounts.product_ref = products.id WHERE records.oper_date = to_date('09.11.2024','DD.MM.YYYY') GROUP BY products.product_type_id ORDER BY products.product_type_id; SELECT records.oper_date, clients.id, clients.name, SUM(records.sum) as Sum FROM records JOIN accounts ON records.acc_ref = accounts.id JOIN clients ON accounts.client_ref = clients.id WHERE MONTHS_BETWEEN(SYSDATE, records.oper_date) <= 1 AND records.dt = 1 GROUP BY records.oper_date, clients.id, clients.name ORDER BY records.oper_date; SELECT c.id, c.name, c.place_of_birth, c.date_of_birth, c.adress, c.passport FROM clients c JOIN accounts ON c.id=accounts.client_ref JOIN products ON accounts.product_ref=products.id WHERE products.product_type_id=1 AND products.close_date IS NULL AND accounts.saldo>=0; UPDATE products p SET close_date=SYSDATE WHERE product_type_id=1 AND EXISTS(SELECT * FROM accounts WHERE p.id = accounts.product_ref AND saldo = 0) AND NOT EXISTS(SELECT * FROM products p1 WHERE p.client_ref = p1.client_ref AND p1.open_date > p.open_date); UPDATE product_type SET end_date=SYSDATE WHERE NOT EXISTS(SELECT * FROM products JOIN accounts ON products.id=accounts.product_ref JOIN records ON accounts.id=records.acc_ref WHERE product_type.id=products.product_type_id AND MONTHS_BETWEEN(SYSDATE, records.oper_date) <= 1); UPDATE accounts a SET saldo=(SELECT SUM(CASE WHEN dt=0 THEN sum ELSE -sum END) FROM records WHERE acc_ref = a.id); SELECT * FROM accounts; ALTER TABLE products ADD sum NUMBER(10,2); UPDATE products p SET sum=(SELECT MAX( CASE WHEN (p.product_type_id = 1 AND records.dt = 1) OR (p.product_type_id != 1 AND records.dt = 0) THEN records.sum END) FROM records JOIN accounts ON records.acc_ref=accounts.id WHERE p.id = accounts.product_ref); SELECT * FROM products;
SQL
Server:
MariaDB 11.4
MariaDB 11.5
MariaDB 10
MariaDB 10 Sakila (ReadOnly)
MySQL 8.0
MySQL 8.0 Sakila (ReadOnly)
SQLite 3
SQLite 3 Preloaded
PostgreSQL 10 Bookings (ReadOnly)
PostgreSQL 13
PostgreSQL 14
PostgreSQL 15
PostgreSQL 16
PostgreSQL 17
MS SQL Server 2017
MS SQL Server 2019
MS SQL Server 2022
MS SQL Server 2022 AdventureWorks (ReadOnly)
Firebird 4.0
Firebird 4.0 (Employee)
Oracle Database 19c (HR)
Oracle Database 21c
Oracle Database 23c Free
SOQOL
Version
ER Diagram
Preserve result
Stuck with a problem?
Got Error?
Ask ChatGPT!
Result:
Copy
Clear