sql 列转行

版权声明:本文为博主原创文章,未经博主允许不得转载(转载请声明原文地址,谢谢java交流群:553997290) https://blog.csdn.net/qq_39313596/article/details/90148041

供参考: 

SELECT
US.LOGONID,ENT.NAME,ENT.SAPID,T1.ID,T1.ORDER_ID,
(CASE
WHEN T2.REFUND_STATUS IS NOT NULL AND T2.REFUND_STATUS!= '' THEN DECODE(T2.REFUND_STATUS,'1','退款确认中','2','已退款','3','退款驳回')
ELSE DECODE(T1.IS_USED,'0','未使用','已使用')
END) USED_STATUS,
T2.CD_FORM_NO,T2.BOOKING_NO,TO_CHAR(T1.CREATE_TIME,'yyyy-MM-dd HH24:MI:SS') CREATE_TIME,
MAX(CASE
WHEN T5.STATUS_CD = '1' THEN TO_CHAR(T5.OPT_DT,'yyyy-MM-dd HH24:MI')
END) DT1,
MAX(CASE
WHEN T5.STATUS_CD = '2' THEN TO_CHAR(T5.OPT_DT,'yyyy-MM-dd HH24:MI')
END) DT2,
MAX(CASE
WHEN T5.STATUS_CD = 'L' THEN TO_CHAR(T5.OPT_DT,'yyyy-MM-dd HH24:MI')
END) DT3,
MAX(CASE
WHEN T5.STATUS_CD = 'B' THEN TO_CHAR(T5.OPT_DT,'yyyy-MM-dd HH24:MI')
END) DT4,
MAX(CASE
WHEN T5.STATUS_CD = 'P' THEN TO_CHAR(T5.OPT_DT,'yyyy-MM-dd HH24:MI')
END) DT5,
MAX(CASE
WHEN T5.STATUS_CD = 'D' THEN 'Y'
ELSE 'N'
END) is_return,
MAX(CASE
WHEN T5.STATUS_CD = '8' THEN 'Y'
ELSE 'N'
END) is_check
FROM X_MINISHOP_TICKET T1
LEFT JOIN X_MINISHOP_TICKET_CD T2 ON T1.ID = T2.TICKET_ID
LEFT JOIN X_ENTERPRISE_EXT ENT ON T1.ENTERPRISE_ID = ENT.ENTERPRISE_ID
LEFT JOIN USERREG US ON US.USERS_ID = T1.USERS_ID
JOIN X_MINISHOP_PRODUCT T3 ON T1.PROD_ID = T3.PRODUCT_ID
LEFT JOIN X_MINISHOP_TICKET_CD_STATUS T5 ON T2.ID = T5.CD_ID
WHERE 1=1 and T3.CATEGORY_ID = 13
GROUP BY US.LOGONID,ENT.NAME,ENT.SAPID,T1.ID,T1.ORDER_ID, T2.REFUND_STATUS,T2.CD_FORM_NO,T2.BOOKING_NO,T1.IS_USED,T1.CREATE_TIME

猜你喜欢

转载自blog.csdn.net/qq_39313596/article/details/90148041