select *, cast(orderdowncount * 100.0 / ordercount as varchar) + '%' downper
from (select scontractno, count(b.iorderid) ordercount,
sum(case when ddowndate is null then 0 else 1 end) as orderdowncount
from tbl_test_contract a
left join tbl_test_order b on a.icontractid = b.icontractid
group by a.icontractid) aa
from (select scontractno, count(b.iorderid) ordercount,
sum(case when ddowndate is null then 0 else 1 end) as orderdowncount
from tbl_test_contract a
left join tbl_test_order b on a.icontractid = b.icontractid
group by a.icontractid) aa
count(b.iorderid),
count( b.ddowndate ),
count( b.ddowndate)*1.00 / count(b.iorderid)
from tbl_test_contract a,
tbl_test_order b
where a.icontractid = b.icontractid
group by a.scontractno