Dificuldade com elaboração de query

Tenho duas tabelas :

[en_despesa]
cd_despesa
vc_nome

[en_lancamento_despesa]
cd_lancamento_despesa
cd_despesa
fl_valor

Quero fazer uma consulta que me retorne as sequintes colunas :

vc_nome, total, porcentagem

onde :

vc_nome é o nome da despesa;
total é a soma de todos os fl_valor, agrupados por despesa;
porcentagem é a porcentagem de cada valor em relação ao total geral;

já consigo retornar vc_nome e total assim :

select d.vc_nome, coalesce(sum(fl_valor), 0) as total from 
en_despesa d inner join en_lancamento_despesa ld on d.cd_despesa = ld.cd_despesa
group by d.cd_despesa, d.vc_nome

o problema está na porcentagem.
Alguém saberia como resolver isso?

Consegui!

ficou +ou- assim

select vc_nome, total, (total/totalGeral)*100 as porcentagem from

(select tb1.vc_nome, coalesce(sum(fl_valor), 0) as total from 
(select cd_despesa, vc_nome from en_despesa where cd_despesa_pai is null) as tb1
inner join en_lancamento_despesa ld on tb1.cd_despesa = ld.cd_despesa_principal
where dt_data >= '2006-06-01' and dt_data <= '2006-06-08'
group by tb1.cd_despesa, tb1.vc_nome
order by tb1.vc_nome) as tb2, 

(select coalesce(sum(fl_valor), 0) as totalGeral from en_lancamento_despesa
where dt_data >= '2006-06-01' and dt_data <= '2006-06-08') as tbx

simplifiquei a descrição do meu problema pra facilitar o entendimento.
Mas minha situação real é um pouco diferente.