datart 问题总结

1、datart做明细表,数据量大时,datart日志发生GC。
解决方案:在datart启动脚本加大堆内存。

2、oracle数据源时,仪表盘

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

解决方案:
select 中传递时间跟做where条件的时间格式不一样导致;

SELECT "DATART_VTABLE".
"病区", "DATART_VTABLE".
"科室", "DATART_VTABLE".
"设置床位数", "DATART_VTABLE".
"实际占用总床日数", "DATART_VTABLE".
"实际开放总床日数", "DATART_VTABLE".
"床位使用率"
FROM(select a.病区, a.科室, a.设置床位数, a.实际占用总床日数, a.实际开放总床日数 as 实际开放总床日数,
    a.床位使用率, b.a from(WITH BED_INFO AS(SELECT IPN_BED.SUBOR_WARD_ID,
            IPN_BED.SUBOR_WARD_NAME, MD_DEPT.SUBOR_DEPT_NAME,
            COUNT(1) SET_COUNT, SUM(IPN_BED.IS_AVAILABLE = 'Y') AVAILABLE_COUNT, (
                (to_timestamp('2022-06-10 00:00:00',
                    'yyyy-mm-dd hh24:mi:ss.ff') + 0) - (
                    to_timestamp('2021-06-10 00:00:00',
                        'yyyy-mm-dd hh24:mi:ss.ff') + 0)) + 1 OPEN_COUNT FROM WIPN
            .IPN_BED INNER JOIN WMD.MD_DEPT ON MD_DEPT.DEPT_ID =
            IPN_BED.SUBOR_WARD_ID AND MD_DEPT.IS_AVAILABLE = 'Y'
            WHERE IPN_BED.IS_BABY_BED = 'N'
            AND IPN_BED.SUBOR_WARD_ID < > 'B0991'
            GROUP BY IPN_BED.SUBOR_WARD_ID, IPN_BED.SUBOR_WARD_NAME,
            MD_DEPT.SUBOR_DEPT_NAME), IN_INFO AS(SELECT CURR_WARD_ID,
            CURR_WARD_NAME, CURR_DEPT_NAME, 77 USED_COUNT FROM WIPN
            .IPN_VISIT WHERE PAT_NAME NOT LIKE '%测试%'
            AND ADMIT_DEPT_NAME NOT LIKE '%测试%'
            AND ADMIT_WARD_NAME NOT LIKE '%测试%'
            AND CURR_DEPT_NAME NOT LIKE '%测试%'
            AND CURR_WARD_NAME NOT LIKE '%测试%'
            AND((INWARD_TIME >= TO_DATE(to_char(TO_TIMESTAMP(
                            '2021-06-10 00:00:00',
                            'YYYY-MM-DD HH24:MI:SS.FF'),
                        'yyyy-mm-dd hh24:mi:ss'),
                    'yyyy-MM-dd , hh24:mi:ss') AND INWARD_TIME <
                TO_DATE(to_char(TO_TIMESTAMP(
                            '2022-06-10 00:00:00',
                            'YYYY-MM-DD HH24:MI:SS.FF'),
                        'yyyy-mm-dd hh24:mi:ss'),
                    'yyyy-MM-dd , hh24:mi:ss ') + 1) OR(
                DISCHARGE_DATE >= TO_DATE(to_char(
                        TO_TIMESTAMP('2021-06-10 00:00:00',
                            'YYYY-MM-DD HH24:MI:SS.FF'),
                        'yyyy-mm-dd hh24:mi:ss'),
                    'yyyy-MM-dd , hh24:mi:ss') AND DISCHARGE_DATE <
                TO_DATE(to_char(TO_TIMESTAMP(
                            '2022-06-10 00:00:00',
                            'YYYY-MM-DD HH24:MI:SS.FF'),
                        'yyyy-mm-dd hh24:mi:ss'),
                    'yyyy-MM-dd , hh24:mi:ss') + 1)) AND LAST_PAT_STATUS_ID IN(
                'IN_WARD', 'APPLY_TRANSFER', 'PRE_DISCHARGE',
                'OUT_DISCHARGE') GROUP BY CURR_WARD_ID,
            CURR_WARD_NAME, CURR_DEPT_NAME) SELECT NVL(IN_INFO.CURR_WARD_NAME,
            BED_INFO.SUBOR_WARD_NAME) 病区, NVL(IN_INFO.CURR_DEPT_NAME,
            BED_INFO.SUBOR_DEPT_NAME) 科室, BED_INFO.AVAILABLE_COUNT AS 设置床位数,
        NVL(SUM(CASE IN_INFO.USED_COUNT WHEN 0 THEN 1 ELSE IN_INFO
            .USED_COUNT END), 0) 实际占用总床日数, ((BED_INFO.OPEN_COUNT)) 实际开放总床日数,
        ROUND(NVL(SUM(CASE IN_INFO.USED_COUNT WHEN 0 THEN 1 ELSE IN_INFO
            .USED_COUNT END), 0) / BED_INFO.OPEN_COUNT, 4) * 100 床位使用率 FROM IN_INFO FULL JOIN BED_INFO ON IN_INFO
        .CURR_WARD_ID = BED_INFO.SUBOR_WARD_ID GROUP BY NVL(
            IN_INFO.CURR_WARD_NAME, BED_INFO.SUBOR_WARD_NAME),
        NVL(IN_INFO.CURR_DEPT_NAME, BED_INFO.SUBOR_DEPT_NAME),
        BED_INFO.AVAILABLE_COUNT, BED_INFO.OPEN_COUNT) a, (select ABS(
        TO_DATE(('2022-06-10 00:00:00'), 'yyyy-mm-dd hh24:mi:ss') -
        TRUNC(TO_DATE(('2021-06-10 00:00:00'), 'yyyy-mm-dd hh24:mi:ss'))
    ) + 1 as a FROM DUAL) b)
"DATART_VTABLE"
GROUP BY "DATART_VTABLE".
"病区", "DATART_VTABLE".
"科室", "DATART_VTABLE".
"设置床位数", "DATART_VTABLE".
"实际占用总床日数", "DATART_VTABLE".
"实际开放总床日数", "DATART_VTABLE".
"床位使用率"

修改sql时间格式:
在这里插入图片描述

修改完数据就能正常显示:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值