如图所示如何将分类名为目标成本的柱子显示在第一根柱子呢

image.pngimage.png

FineReport 林克大魔王 发布于 2020-10-20 14:40
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
ColdmanLv6高级互助
发布于2020-10-20 14:41(编辑于 2020-10-20 14:53)

原样:

image.png

添加排序字段:

image.png

SELECT
	( CASE nf WHEN '目标成本' THEN '1' ELSE '2' END ) px,
	nf,
	yf 
FROM
	textaa 
ORDER BY
	px,
	nf


  • 林克大魔王 林克大魔王(提问者) 设置了排序的,将目标成本排到了最末
    2020-10-20 14:42 
  • Coldman Coldman 回复 林克大魔王(提问者) 你要显示在前面就把目标成本排到前面啊
    2020-10-20 14:42 
  • 林克大魔王 林克大魔王(提问者) 回复 Coldman 这样的话日期也从大到小了呀,图表不就乱掉了嘛- -
    2020-10-20 14:43 
  • Coldman Coldman 回复 林克大魔王(提问者) 用case when 判断,做一个排序字段,把目标成本设为1,排序先排排序字段,再排日期
    2020-10-20 14:47 
  • Coldman Coldman 回复 林克大魔王(提问者) 不会写看新回复的图
    2020-10-20 14:53 
最佳回答
0
cherishdqyLv7高级互助
发布于2020-10-20 14:47

加个字段,用case判断YN 等于目标成本时为0,否则为1 ,然后排序加上这个字段,先按这个字段排序再按照YN排序

  • 林克大魔王 林克大魔王(提问者) 试过了,这样的话我根据序号排序,时间就会乱掉,根据时间排序,序号又会跑到最末去~~~
    2020-10-20 14:58 
  • 林克大魔王 林克大魔王(提问者) SELECT CASE WHEN s6.ym = \'目标成本\' THEN 1 ELSE 0 END AS YN, S6.ym, S6.hztype, S6.NAME, ROUND(nvl(SUM (S6.hz),0)) HZ, ROUND(SUM(t2.XSQYJE),0) as XSQYJE FROM ( select * from s6 order by ym ) s6 INNER JOIN EDW_V_MD_FRAMEWORK t1 ON s6.PHASEID = t1.PHASEID LEFT JOIN EDW_V_FACT_MKT_24QY t2 ON s6.ym = t2.ym AND t1.PHASEID = t2.PHASEID WHERE 1=1 ${IF(LEN(phaseid)==0,\"\",\"AND t1.PHASEID IN (\'\"+phaseid+\"\')\")} GROUP BY S6.ym, S6.hztype, S6.NAME ORDER BY YN desc
    2020-10-20 14:59 
  • cherishdqy cherishdqy 回复 林克大魔王(提问者) 两个排序写在一起,order by YN ASC, s6.ym ASC
    2020-10-20 15:02 
  • 林克大魔王 林克大魔王(提问者) 回复 cherishdqy 感谢回答,已经解决了
    2020-10-20 15:09 
最佳回答
0
axingLv6专家互助
发布于2020-10-20 14:56

order by 语句改成

order by case when YM='目标成本' then 0 else YM end


  • 4关注人数
  • 470浏览人数
  • 最后回答于:2020-10-20 14:56
    请选择关闭问题的原因
    确定 取消
    返回顶部