Anzeigen bestimmter Spalten nach bestimmten Bedingungen

so hab jetzt folgenden code

select p.partname,s.suppname,z.quantity      
from company.supplier s,company.supp_part z,company.part p           
where s.suppno = z.suppno                                            
and z.partno = p.partno  
order by p.partname,s.suppname
union all
select ' ',' ',NULL
from dual
union all
select 'Summe:',' ',sum(quantity)
from company.supp_part;

wobei der eigentlich funktioniert sobald ich " order by " rausnehme

was ist an dem code falsch das er den den befehl " order by " nicht aktzeptiert ??

und desweiteren gibt es eine andere möglichkeit anstelle des wertes NULL das er auch nur ne leere zeile in der 3dritten spalte anzeigt?