查询需求场景
-- 统计当月不同流程类型的审批通过流程数、审批终止流程数、审批驳回流程数、新增流程数(归档+终止+退回)、申请总条目数(关联任务单申请条目数总数)
-- 查询思路:
-- 1. 获取当月创建的所有流程 tn_workflow_instance_node(create_time like concat( '2024-09', '%') && node_no = 1 )
-- 2. 按照流程类型进行分组:新增、扩充、冻结、解冻、变更
-- 3. 统计每个组内不同审批状态(终止、退回、归档)总数
-- 4. 关联任务单统计申请条目总数
-- tn_workflow_instance_node 流程实例节点表 (统计流程发起时间在本月内及关联流程实例和任务单用到)
-- tn_workflow_instance 流程实例表 (统计流程的状态是通过、退回、终止时关联用到)
-- tn_work_task 任务单表 (统计流程关联任务单审批的总条目数用到)
预设查询结果
如下:
SQL实现查询
SELECT
CASE
wn.workflow_id
WHEN 'WF12304702' THEN
'扩充'
WHEN 'WF182295840' THEN
'冻结'
WHEN 'WF30500982' THEN
'新增'
WHEN 'WF657578194' THEN
'变更'
WHEN 'WF734432211' THEN
'解冻'
ELSE 'Unknown'
END AS 流程类型,
SUM( CASE WHEN wi.STATUS = 'archived' THEN 1 ELSE 0 END ) AS 审批通过总数,
SUM( CASE WHEN wi.STATUS = 'suspend' THEN 1 ELSE 0 END ) AS 审批中止总数,
SUM( CASE WHEN wi.STATUS = 'return' THEN 1 ELSE 0 END ) AS 审批退回总数,
SUM( CASE WHEN wi.STATUS IN ( 'return', 'suspend', 'archived' ) THEN 1 ELSE 0 END ) AS 新增流程总数,
SUM( wt.apply_count ) AS 任务单申请总条目数
FROM
tn_workflow_instance_node wn
JOIN tn_workflow_instance wi ON wn.workflow_instance_id = wi.workflow_instance_id
JOIN tn_work_task wt ON wi.task_id = wt.task_id
WHERE
wn.create_time LIKE concat( '2024-09', '%' )
AND wn.node_no = 1
AND wi.STATUS IN ( 'return', 'suspend', 'archived' )
GROUP BY
wn.workflow_id
查询结果: