SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
-- Создание таблицы knd_apil CREATE TABLE knd_apil ( id SERIAL PRIMARY KEY, -- Первичный ключ orderId INTEGER NOT NULL, -- Идентификатор жалобы ParentId INTEGER, -- Ссылка на родительскую жалобу (NULL для первичных жалоб) Name VARCHAR(255), -- Название причины жалобы (NULL для вторичных жалоб) complaint_date DATE, -- Дата подачи жалобы control_organ VARCHAR(255), -- Орган контроля control_object_number VARCHAR(50) -- Номер объекта контроля ); CREATE INDEX idx_knd_apil_name ON knd_apil(Name); -- Вставка данных INSERT INTO knd_apil (orderId, ParentId, Name, complaint_date, control_organ, control_object_number) VALUES (101, NULL, 'Название причины', '2024-01-01', 'Контрольный орган 1', 'Объект-1'), -- Первичная жалоба (102, 101, NULL, '2024-01-10', 'Контрольный орган 1', 'Объект-1'), -- Вторичная жалоба на ту же причину (103, NULL, 'Другая причина', '2024-02-01', 'Контрольный орган 2', 'Объект-2'), -- Другая первичная жалоба (104, NULL, 'Название причины', '2024-03-01', 'Контрольный орган 1', 'Объект-3'), -- Еще одна первичная жалоба с той же причиной (105, 103, NULL, '2024-02-10', 'Контрольный орган 2', 'Объект-2'); SELECT child.id, child.orderId, child.ParentId, COALESCE(child.Name, parent.Name) AS Name FROM knd_apil child LEFT JOIN knd_apil parent ON child.ParentId = parent.orderId WHERE COALESCE(child.Name, parent.Name) = 'Название причины';

Stuck with a problem? Got Error? Ask ChatGPT!

Copy Clear