这段代码他是写死的,后期这些行业、区域、大华北等部门会变怎么给他不写死啊

SELECT SUM

 ( CASE WHEN DATA_DIMENSION_1 = '行业' THEN DATA_VAL END ) AS 行业,

 SUM ( CASE WHEN DATA_DIMENSION_1 = '区域' THEN DATA_VAL END ) AS 区域,

 SUM ( CASE WHEN DATA_DIMENSION_1 = '大华北' THEN DATA_VAL END ) AS 大华北,

 SUM ( CASE WHEN DATA_DIMENSION_1 = '国际' THEN DATA_VAL END ) AS 国际,

 SUM ( CASE WHEN DATA_DIMENSION_1 = '新疆' THEN DATA_VAL END ) AS 新疆,

 SUM ( CASE WHEN DATA_DIMENSION_1 = '大客户' THEN DATA_VAL END ) AS 大客户,

 TO_CHAR( DATE_TRUNC( 'YEAR', DATA_DATE ), 'YYYY' ) AS VAL 

FROM

 DB_BI_PROFIT_CENTER 

WHERE

 DIMENSION_2 = '出厂成本' 

GROUP BY

 VAL 

ORDER BY

 VAL

image.png

用户K0035705 发布于 2020-9-1 14:58
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
snrtuemcLv8专家互助
发布于2020-9-1 15:01(编辑于 2020-9-1 15:15)

好像只能改了后修改,折中方式,这边写死,作为代码,然后做一张中间表,通过翻译显示成你想要文字描述,这样修改只要修改中间表就可以了


select TO_CHAR( DATE_TRUNC( 'YEAR', DATA_DATE ), 'YYYY' ) AS VAL,DATA_DIMENSION_1,sum( DATA_VAL END) FROM DB_BI_PROFIT_CENTER WHERE

DIMENSION_2 = '出厂成本'  GROUP BY TO_CHAR( DATE_TRUNC( 'YEAR', DATA_DATE ), 'YYYY' ) ,DATA_DIMENSION_1

ORDER BY VAL


  • 用户K0035705 用户K0035705(提问者) 怎么做中间表啊
    2020-09-01 15:02 
  • snrtuemc snrtuemc 回复 用户K0035705(提问者) 因为你这是sql,不会直接对用户展示,就好像帆软中有数据字典(即中间表),显示行业,可以转换成行业1,行业2 等你想要的数据
    2020-09-01 15:04 
  • 用户K0035705 用户K0035705(提问者) 回复 snrtuemc 这样吗
    2020-09-01 15:06 
  • 用户K0035705 用户K0035705(提问者) 回复 snrtuemc SELECT SUM( CASE WHEN DATA_DIMENSION_1 = \'行业\' THEN DATA_VAL END ) AS DATA_DIMENSION_1, SUM ( CASE WHEN DATA_DIMENSION_1 = \'区域\' THEN DATA_VAL END ) AS DATA_DIMENSION_1, SUM ( CASE WHEN DATA_DIMENSION_1 = \'大华北\' THEN DATA_VAL END ) AS DATA_DIMENSION_1, SUM ( CASE WHEN DATA_DIMENSION_1 = \'国际\' THEN DATA_VAL END ) AS DATA_DIMENSION_1, SUM ( CASE WHEN DATA_DIMENSION_1 = \'新疆\' THEN DATA_VAL END ) AS DATA_DIMENSION_1, SUM ( CASE WHEN DATA_DIMENSION_1 = \'大客户\' THEN DATA_VAL END ) AS DATA_DIMENSION_1, TO_CHAR( DATE_TRUNC( \'YEAR\', DATA_DATE ), \'YYYY\' ) AS VAL FROM DB_BI_PROFIT_CENTER WHERE DIMENSION_2 = \'出厂成本\' GROUP BY VAL ORDER BY VAL
    2020-09-01 15:06 
  • snrtuemc snrtuemc 回复 用户K0035705(提问者) 你这,建议直接使用年份,类型分组汇总就可以,然后做帆软报表展示时候交叉表展示就可以,sql语句可以改成,参见修改答案
    2020-09-01 15:15 
  • 2关注人数
  • 373浏览人数
  • 最后回答于:2020-9-1 15:15
    请选择关闭问题的原因
    确定 取消
    返回顶部