<c:tablequery extds="${param.dbname}">
select
(select a.area_desc from CMCODE_AREA a where area_no = t.area_no) AREA_DESC,
t.SYS_NAME,
t.ACCT_NUM,
t.ID_ISNULL_NUM,
round(t.ID_ISNULL_NUM/t.ACCT_NUM, 3)*100 ||'%' as ID_ISNULL_RATE,
t.NAME_ISNULL_NUM,
round(t.NAME_ISNULL_NUM/t.ACCT_NUM, 3)*100 ||'%' as NAME_ISNULL_RATE,
t.TELEPHONE_ISNULL_NUM,
round(t.TELEPHONE_ISNULL_NUM/t.ACCT_NUM, 3)*100 ||'%' as TELEPHONE_ISNULL_RATE
from hr_dm.DM_D_HR_ACCT_NO_DATA_FULL t
where 1=1
<e:if condition="${param.day !='' && param.day !=null}" >
AND t.acct_day='${param.day }'
</e:if>
<e:if condition="${param.areaNo !='' && param.areaNo !=null}" >
AND t.AREA_NO = '${param.areaNo}'
</e:if>
and 1123=1123
select
(select a.area_desc from CMCODE_AREA a where area_no = t.area_no) AREA_DESC,
t.SYS_NAME,
t.ACCT_NUM,
t.ID_ISNULL_NUM,
round(t.ID_ISNULL_NUM/t.ACCT_NUM, 3)*100 ||'%' as ID_ISNULL_RATE,
t.NAME_ISNULL_NUM,
round(t.NAME_ISNULL_NUM/t.ACCT_NUM, 3)*100 ||'%' as NAME_ISNULL_RATE,
t.TELEPHONE_ISNULL_NUM,
round(t.TELEPHONE_ISNULL_NUM/t.ACCT_NUM, 3)*100 ||'%' as TELEPHONE_ISNULL_RATE
from hr_dm.DM_D_HR_ACCT_NO_DATA_FULL t
where 1=1
<e:if condition="${param.day !='' && param.day !=null}" >
AND t.acct_day='${param.day }'
</e:if>
<e:if condition="${param.areaNo !='' && param.areaNo !=null}" >
AND t.AREA_NO = '${param.areaNo}'
</e:if>
and 1123=1123
</c:tablequery>
该sql语句中的 round(t.ID_ISNULL_NUM/t.ACCT_NUM, 3)*100 ||'%' as ID_ISNULL_RATE, 其实就是求百分比 而函数rount 第二个参数就是表示第一个参数保留几位小数,双竖杠"||"则表示字符串拼接了;