(посилається сама на себе) і дані можна представити у вигляді дерева. Але у таблиці також міститься інформація і про інших підприємствах (наприклад головний офіс). Відображати необхідно тільки інформацію про співробітників В«КольськогоВ» філії, звідси така велика кількість умов. p align="justify"> Запит для складання звіту: distinct replace (f | | '' | | i | | '' | | o, '.','') fio, replace (job.name, '.' ,'') job, job.rank as rank, mail, replace (tel, ',', ',') tel, person.id_struct, person.id, b.name as name, b.rn as rn, replace ( b.path, '/% /','') path from personjoin
(SELECT id_person, wm_concat (tel) AS telperstelBY id_person) a on a.ID_PERSON = Person.idjoin persjob on PERSON.ID = PERSJOB.ID_PERSONjoin job on job.id = PERSJOB.ID_JOBjoin
(SELECT name, level, parent_id, id, rownum as rn, SYS_CONNECT_BY_PATH (name, '/') as PathstructureWITH parent_id = 10000000000BY PRIOR id = parent_id AND id! = '90150000000 'id! =' 92350000000 'AND id! = '90040000000' id! = '90050000000 'AND id! = '90120000000' id! = '92350000000 'AND id! = '90140000000' id! = '94875102396 'AND id! = '90751300000' id! = '90961580000 'AND id! = '90971590000' id! = '91750000000 'AND id! = '91350000000' id! = '91550000000 'AND id! = '91953900000' id! = '91956500000 'AND id! = '92150000000' id! = '92555700000 'AND id! = '92956100000' id! = '90010000000 'AND id! = '90020000000' id! = '90030000000 'SIBLINGS BY ord, name) b on PERSON.ID_STRUCT = b.idjoin
(SELECT id_person, wm_concat (mail) AS mailpersmailBY id_person) c on c.ID_PERSON = person.idby rn, person.id_struct, rank, fio
У даному запиті використовується інформація з усіх таблиць, злиття декількох атрибутів в один, заміна підрядка в рядку результату, вкладені запити, рекурсивний запит.
Інтерфейс
В
Рис.1 Вікно авторизації
В
Рис.2 (Дані співробітників зафарбовані на прохання керівника практики)
В
Рис.3 (Дані співробітників зафарбовані на прохання керівника практики)
Лістінг.__fastcall TInfo :: ExcelRepClick (TObject * Sender)
{> Visible = false; -> First ();// create Excel filei, count, pole; cur_value; oExcel, oWb, book, oSh, sheet, = 12; (count <= Path-> Lines-> Count)// write current department
} = 1; max_count = ADOQuery3-> RecordCount + Path-> Lines-> Count; buf_dept; (count <= Titles-> Lines-> Count)// write data about persons
{// change style of Excel 12); _dept = ""; (i = Path-> Lines-> Count +1; i <= max_coun...