АЦК. Вывести информацию по прикрепленным файлам
Если нужно вывести список прикрепленных файлов к ЭД, то можно использовать скрипт ниже. Сортировка идет по полю attach_name.
SELECT d.document_id AS "Документ ID", dk.caption AS "Класс ЭД", dc.doc_number AS "Номер ЭД", dc.doc_date AS "Дата ЭД", d.attach_name AS "Название файла", su.realname AS "Тот кто прицепил файл", d.action_date AS "Когда прицепили", d.file_size AS "размер файла" FROM DOCATTACHEX d LEFT JOIN document dc ON dc.id = d.document_id LEFT JOIN documentclass dk ON dk.id = dc.documentclass_id LEFT JOIN sysuser su ON su.id = d.author ORDER BY d.attach_name;
Если при этом нужно узнать, в каких ЭД используется один и тот же файл (считаем что один и тот же файл - это файл с одним наименованием), то необходимо выполнить скрипт ниже.
SELECT d.document_id AS "Документ ID", dk.caption AS "Класс ЭД", dc.doc_number AS "Номер ЭД", dc.doc_date AS "Дата ЭД", d.attach_name AS "Название файла", su.realname AS "Тот кто прицепил файл", d.action_date AS "Когда прицепили", d.file_size AS "размер файла" FROM DOCATTACHEX d LEFT JOIN document dc ON dc.id = d.document_id LEFT JOIN documentclass dk ON dk.id = dc.documentclass_id LEFT JOIN sysuser su ON su.id = d.author WHERE d.attach_name IN (SELECT d1.attach_name FROM DOCATTACHEX d1 GROUP BY d1.attach_name HAVING COUNT(*) > 1) ORDER BY d.attach_name;
Если при этом нужно вывести список аттачей за определенное число, то нужно добавить условие по дате ниже.
..... WHERE ..... AND CAST(d.action_date AS DATE) ='24.01.2019' ORDER BY d.attach_name;
SELECT d.document_id AS "Документ ID",
dk.caption AS "Класс ЭД",
dc.doc_number AS "Номер ЭД",
dc.doc_date AS "Дата ЭД",
d.attach_name AS "Название файла",
dl.DEVICE_NAME AS "Хранилище",
dl.REAL_FILENAME AS "Файл в хранилище"
FROM DOCATTACHEX d
JOIN document dc ON dc.id = d.document_id
JOIN documentclass dk ON dk.id = dc.documentclass_id
JOIN docattach_link dl ON dl.DOCATTACH_ID = d.ID
ORDER BY d.attach_name;
dk.caption AS "Класс ЭД",
dc.doc_number AS "Номер ЭД",
dc.doc_date AS "Дата ЭД",
d.attach_name AS "Название файла",
dl.DEVICE_NAME AS "Хранилище",
dl.REAL_FILENAME AS "Файл в хранилище"
FROM DOCATTACHEX d
JOIN document dc ON dc.id = d.document_id
JOIN documentclass dk ON dk.id = dc.documentclass_id
JOIN docattach_link dl ON dl.DOCATTACH_ID = d.ID
ORDER BY d.attach_name;
Для ГЗ:
SELECT d.document_id AS "Документ ID",
dk.caption AS "Класс ЭД",
dc.doc_number AS "Номер ЭД",
dc.doc_date AS "Дата ЭД",
d.id,
d.attach_name AS "Название файла",
dl.DEVICE_NAME AS "Хранилище",
REPLACE(dl.FOLDER,'/','\')||'atch#'||dl.FILE_NAME AS "Файл в хранилище"
FROM DOCATTACHEX d
JOIN document dc ON dc.id = d.document_id
JOIN documentclass dk ON dk.id = dc.documentclass_id
JOIN FILEFOLDER dl ON dl.FILE_NAME = TO_CHAR(d.ID)
WHERE dc.id in (<document_id>)
ORDER BY dc.id;
Комментарии
Отправить комментарий