SQL问题:select * from 出来的decimal数据类型的数据精度丢失

像这样的一个SQL,r1应该是有两位小数的,但是在外面加一层select * from 就失效了,应该怎么修改里面那层的sql,让r1保留两位小数?
select * from (
cast( round( ( zw_tab1_1_01 - zw_tab1_1_02 ) * 100.0000 / zw_tab1_1_02, 2 ) AS DECIMAL ( 24, 2 ) ) ELSE 0
END AS r1,

图片说明

可不可以换另一种思路,先乘以100计算,然后再除以100取整。