|
Подскажите с рекурсией
|
|||
---|---|---|---|
#18+
Добрый день! Есть один рекурсивный запрос который выдает выгрузку значений, как в этом же селекте написать несколько вложенных селектов, которые будут обращаться к рекурсивному запросу и забирать данные (общее количество поступивших обращений, количество обращений с нарушением SLA и т.д.) ? Сам рекурсивный запрос: with recursive R (id, creation_date, datedecision, state) as ( select ts.id, ts.creation_date as "Дата создания", ts.datedecision as "Дата выполнения", ts.state as "Статус", ts.title as "Номер запроса", ou.title as "Название отдела", case when (ts.overduestate_s='e' OR (ts.overduestate_s='a' AND (CURRENT_TIMESTAMP > to_timestamp(ts.overduestate_d/1000)))) then 'Просрочен' else 'Не просрочен' end as "Просрочен?" from tbl_servicecall ts left join tbl_employee e on e.id=ts.solvedbyemployee_id left join tbl_employee_teams et on et.employee_id=e.id left join tbl_ou ou on ou.id=e.parent_id left join tbl_team tt on tt.id=et.teams_id left join tbl_servicec_analytic sa on sa.servicecall_id=ts.id left join tbl_analyticalcat ta on ta.id=sa.analyticalfeat_id where (ts.datedecision > date_trunc('week', current_date) and ts.state in ('closed', 'resolved')) group by ts.id, ts.title, ts.creation_date, ts.datedecision, ou.title, ts.state, ts.overduestate_s, ts.overduestate_d, ts.case_id union all select R.id+1, ts.creation_date, ts.datedecision, ts.state, ts.title, ou.title as title1, case when (ts.overduestate_s='e' OR (ts.overduestate_s='a' AND (CURRENT_TIMESTAMP > to_timestamp(ts.overduestate_d/1000)))) then 'Просрочен' else 'Не просрочен' end as "Просрочен?" from tbl_servicecall ts JOIN R on R.id=ts.number_ left join tbl_employee e on e.id=ts.solvedbyemployee_id left join tbl_employee_teams et on et.employee_id=e.id left join tbl_ou ou on ou.id=e.parent_id left join tbl_team tt on tt.id=et.teams_id left join tbl_servicec_analytic sa on sa.servicecall_id=ts.id left join tbl_analyticalcat ta on ta.id=sa.analyticalfeat_id ) select * from R ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 11:06 |
|
|
start [/forum/topic.php?fid=53&fpage=31&tid=1994812]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 139ms |
0 / 0 |