图表类型选择

需求:在图表X轴显示前3年的累计值,本年度各月的MTD,本年度YTD

问:数据处理思路,选什么图表类型?趋势跟踪.png

FineBI 用户b6039401 发布于 2023-6-12 16:56
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-6-12 17:01

用 union ALL拼接

前三年 SQL

union ALL

本年度各月的MTD sql

union all

本年度YTD

  • 用户b6039401 用户b6039401(提问者) 要在抽取到FineBI之前,用SQL拼接好? 目前是抽取到FineBI后,对数据进行了加工(比如事实和维度的合并、字段转换等),然后形成一个新的数据集
    2023-06-13 15:03 
  • Z4u3z1 Z4u3z1 回复 用户b6039401(提问者) “FineBI 中的 SQL 语句不能创建新的数据表,也不能修改表结构,仅支持将已有数据库中的表通过 SQL 语句取数至 BI ”所以需要提取写好
    2023-06-13 15:08 
最佳回答
0
snrtuemcLv8专家互助
发布于2023-6-12 17:02

你这个,要么直接处理好你现在的数据,三年的数据,当年每月数据,累计数据

然后直接一个柱形图展示

不能标准没有一个图形可以展示。。。

最佳回答
0
大林3143511Lv5中级互助
发布于2023-6-13 07:49

年度和年度比较才有意义,本年度月的在一起比较才有意义,关键是你想要展示什么?年度累计值变化?本年度月度值变化?

  • 用户b6039401 用户b6039401(提问者) 图表的几大类应用,1.对比,2.占比,3.趋势.................这是看趋势的一种展现方法
    2023-06-13 14:57 
最佳回答
0
用户P9751595Lv4见习互助
发布于2023-6-13 08:21

用自定义图表。参考文档:https://help.fanruan.com/finebi/doc-view-1665.html?source=4

随意摘取一个以前的案例SQL(oracle数据库):

WITH AA AS (

SELECT * FROM (

SELECT "班次日期",sum("工序原始出勤工时") AS "工序原始出勤工时",

SUM("工序实际出勤工时") AS "工序实际出勤工时",

sum("工序援入工时") AS "工序援入工时",

sum("工序援出工时") AS "工序援出工时",

sum("工序额定") AS "工序额定",

  (SUM("工序实际出勤工时")+sum("工序援入工时")-sum("工序援出工时")) AS "投入工时"

--(sum("工序额定"))/(SUM("工序实际出勤工时")+sum("工序援入工时")-sum("工序援出工时")) AS "工序效率" 

FROM (

SELECT 

SHIFTDATE AS "班次日期",

--WIPWORKSHOP AS "班次WIP车间 ",

ZWORKSHOPDESC AS "工序效率车间",

--FUNCTION_TEAM AS "职能组",

--SHIFT AS "班次 ",

OPERATION AS  "WIP工序",

--SECOND_ORDER AS "二阶管理维度",

--THRID_ORDER AS "三阶管理维度",

ATTENDANCEHOURS AS "工序原始出勤工时",

ACUTAL_ATTENDANCEHOURS AS "工序实际出勤工时",

SUPPORTIN_HOURS AS "工序援入工时",

SUPPORTOUT_HOURS AS "工序援出工时",

RATEDHOURS AS "工序额定",

ETL_DATE

FROM HZUSER.Atl_DataSummery_ProcessEfficiency_Detail

WHERE 

--ZWORKSHOPDESC IN ('W2_阴极前工序','W2_阳极前工序')

ZWORKSHOPDESC IN ('W2_铜箔印刷','W2_阳极前工序','W2_阴极凹版','W2_阴极前工序')

  AND ISCHECK='考核'

--AND TO_CHAR(SHIFTDATE,'YYYY-MM-DD')='2022-10-27'

)AA

GROUP BY "班次日期" ORDER BY "班次日期" DESC)AAA 

LEFT JOIN 

(SELECT DATA_DT,YEARMONTH AS "年月",ATL_YEARWK AS "年周" FROM HZUSER.ATL_DATE )BBB

ON AAA."班次日期"=BBB.DATA_DT

),

--四周

QQ AS ( SELECT * FROM (SELECT DISTINCT atl_yearwk FROM HZUSER.ATL_DATE 

WHERE data_dt<TRUNC(SYSDATE - 0)

ORDER BY atl_yearwk DESC)AA WHERE ROWNUM<=4

),

--2月

KK AS ( SELECT * FROM (SELECT DISTINCT YEARMONTH FROM HZUSER.ATL_DATE 

WHERE data_dt<TRUNC(SYSDATE - 0)

ORDER BY YEARMONTH DESC)AA WHERE ROWNUM<=2

),

--5天

BB AS (

SELECT CAST(TO_CHAR(班次日期,'yyyy-mm-dd') AS  nvarchar2(10)) AS 班次日期,工序实际出勤工时,工序援入工时,工序援出工时,投入工时,工序额定,ROUND(工序额定,4)/(投入工时) AS 效率 FROM AA

  WHERE 班次日期>=TRUNC(SYSDATE - 6)

AND  班次日期<=TRUNC(SYSDATE - 1)

),

--4周

CC AS (

SELECT 年周,SUM(工序实际出勤工时) AS 工序实际出勤工时,SUM(工序援入工时) AS 工序援入工时,SUM(工序援出工时) AS 工序援出工时,SUM(投入工时) AS 投入工时,SUM(工序额定) AS 工序额定,ROUND(SUM(工序额定),4)/SUM(投入工时) AS 效率 FROM AA

WHERE 年周  IN (SELECT atl_yearwk FROM QQ)

GROUP BY 年周

),

--2月

DD AS (

SELECT 年月,SUM(工序实际出勤工时) AS 工序实际出勤工时,SUM(工序援入工时) AS 工序援入工时,SUM(工序援出工时) AS 工序援出工时,SUM(投入工时) AS 投入工时,SUM(工序额定) AS 工序额定,ROUND(SUM(工序额定),4)/SUM(投入工时) AS 效率 FROM AA

WHERE 年月 IN (SELECT * FROM KK)

GROUP BY 年月

)

SELECT * FROM BB

UNION 

SELECT * FROM CC

UNION 

SELECT * FROM DD

  • 用户E5817013 用户E5817013 大佬,HZUSER.ATL_DATE 是怎样写的呢
    2023-06-13 09:05 
  • 用户P9751595 用户P9751595 回复 用户E5817013 HZUSER.ATL_DATE就是一张日期维度表。 有几个处理好的日期字段。
    2023-06-13 13:52 
  • 用户P9751595 用户P9751595 回复 用户E5817013 如果没有就新建一个字段,再汇总也一样的。例如: 原表:select 日期,值 from A 改成 select 年,sum(值) from ( select 日期,year(日期) as 年,值 from A)X group by 年 这样不就按年汇总了吗。再把其它你要的日期维度做好,union起来
    2023-06-13 14:26 
  • 用户b6039401 用户b6039401(提问者) 要在抽取到FineBI之前,用SQL拼接好?
    2023-06-13 15:04 
  • 用户P9751595 用户P9751595 回复 用户b6039401(提问者) 嗯,提前拼好
    2023-06-14 13:59 
  • 3关注人数
  • 351浏览人数
  • 最后回答于:2023-6-13 08:21
    请选择关闭问题的原因
    确定 取消
    返回顶部