oracle数据库实现横向转纵向输出

代码:

SELECT
	t.CONTRACTNO,
	t.CTIME,
CASE
		
		WHEN to_char( RECORD_TYPE ) IN ( '7', '13' ) THEN
		to_char( fixprice ) ELSE '0' 
	END hxj,
CASE
	
	WHEN to_char( RECORD_TYPE ) = '8' THEN
	to_char( fixprice ) ELSE '0' 
	END hxfj,
CASE
	
	WHEN to_char( RECORD_TYPE ) IN ( '9', '10', '11', '12' ) THEN
	to_char( fixprice ) ELSE '0' 
	END jx,
CASE
	
	WHEN to_char( RECORD_TYPE ) IN ( '1', '2', '3', '4', '5', '6' ) THEN
	to_char( fixprice ) ELSE '0' 
	END xn,
CASE
	
	WHEN to_char( RECORD_TYPE ) IN ( '111' ) THEN
	to_char( fixprice ) ELSE '0' 
	END jj 
FROM
	(
	SELECT
		dlrs.CONTRACTNO,
		dlsp.BTYPE,
		dlms.stype,
		dlms.RECORD_TYPE,
		dlorf.report_type,
		to_char( dlrs.create_time, 'yyyy-mm' ) AS ctime -- ,nvl(dltp.FIXED_PRICE,'0')
		,
		sum( nvl( dltp.FIXED_PRICE, '0' ) ) AS fixprice 
	FROM
		DE_LH_REQUESTUO_SINGLE dlrs
		LEFT JOIN DE_LH_SAMPLESINGLE_PARAM dlsp ON dlsp.REQUESTTUOSIGNLE_ID = dlrs.id
		LEFT JOIN DE_LH_MACHININGTYPE_SUB dlms ON dlms.id = dlsp.SUBTYPE_ID
		LEFT JOIN DE_LH_ORI_RECORD_FORMAT dlorf ON dlorf.id = dlms.RECORD_TYPE
		LEFT JOIN DE_LH_TEST_PRICE dltp ON dltp.TESTITEM_ID = dlsp.TESTITEM_ID 
	WHERE
		TO_CHAR( dlrs.create_time, 'yyyy-MM' ) = '2020-09' 
	GROUP BY
		dlrs.CONTRACTNO,
		dlsp.BTYPE,
		dlms.stype,
		dlms.RECORD_TYPE,
		dlorf.report_type,
	to_char( dlrs.create_time, 'yyyy-mm' ) 
	) t

效果:
在这里插入图片描述

在这里插入图片描述

大佬勿喷,欢迎提意见建议评论!!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值