Here is what I came up with but it seems to make the calculations with total_rows = 5 as opposed to 4 that is the result of the date argument.

1 select a.complaint_cause, round(count(a.complaint_cause)/b.total_rows*100,2) as total_rows
2 from complaints a, (select count(ROWID)total_rows from complaints where date_entered
3 between '01-October-00' and '15-October-00')b
4* group by a.complaint_cause, b.total_rows
SQL> /

COMPLAINT_CAUSE TOTAL_ROWS
------------------------- ----------
Billing 75
Network 25
Provisioning 25