自定义resultMap,使用wm_concat函数,创建索引

select A.orderid, wm_concat(A.prostatus3||'已'||A.sprocessname) softstatus from (select max(orderid) as orderid , max(sprocessname) as sprocessname, count(sprocessid) as prostatus3 from HSJG_TB_PROSPROCESS where id in (select max(id) from HSJG_TB_PROSPROCESS where ACTUALFINDATE is not null and ISREWORK != 0 group by orderdid) and orderid in (${orderid}) group by sprocessid,orderid ) A group by A.orderid 索引: create sequence s_hsjg_tb_normal_client_lever increment by 1 start with 100000001 maxvalue 999999999; --case when的用法 SELECT A . ID, c.SPROCESSID, MIN (c.sprocessname) AS sprocessname, SUM ( ( CASE WHEN c.status = 0 THEN 1 ELSE 0 END ) ) prostatus1, SUM ( ( CASE WHEN c.status = 1 THEN 1 ELSE 0 END ) ) prostatus2, SUM ( ( CASE WHEN c.status = 2 THEN 1 ELSE 0 END ) ) prostatus3 FROM HSJG_TB_SALEORDER A LEFT JOIN HSJG_TB_SALEORDERD B ON A . ID = b.ORDERID LEFT JOIN HSJG_TB_PROSPROCESS c ON b. ID = c.orderdid LEFT JOIN HSJG_TB_NORMAL_STANPROCESS D ON D . ID = c.SPROCESSID WHERE A .status = 4 AND ( b.detailstatus = 1 OR b.detailstatus = 2 ) AND b. ID IS NOT NULL AND b.ISDEL IS NULL GROUP BY A . ID, c.SPROCESSID ORDER BY A . ID

–过渡函数
sum(b.maketime) over(partition by b.maketime order by a.sortpostion desc) *60 *1000 as maketime,

猜你喜欢

转载自blog.csdn.net/weixin_39507514/article/details/86606448