Dois counts, tabelas diferentes, mesma query

Olá a todos, tenho tres tabelas no banco, produtos, produtostamanhos e pedidositens.
em ambas as tres tabelas existe o campo produto, chave primaria na tabela produtos e relacionamento das outras duas.
eu quero fazer um comando count(produtostamanhos.produto) e count(pedidositens.produto) agrupando por produtos.produto

o mais perto que cheguei disso foi

select p.produto, null, null from produtos as p union select p.produto, count(pt.produto) as conttamanhos, null from produtos as p inner join produtostamanhos as pt on p.produto = pt.produto group by p.produto union select p.produto, null, count(pi.produto) as contitens from produtos as p inner join pedidositens as pi on p.produto = pi.produto group by p.produto;
só que ele retorna 3 linhas pra cada produto como abaixo no exemplo do produto de código 4:
4 - 1 - null
4 - null - 9
4 - null - null

eu queria jogar td isso na mesma linha
4 - 1 - 9

já tentei o seguinte código também

select produtos.produto, count(produtostamanhos.produto), count(pedidositens.produto) from produtos, produtostamanhos, pedidositens where produtostamanhos.produto = produtos.produto and pedidositens.produto = produtos.produto group by produtos.produto, produtostamanhos.produto, pedidositens.produto;
só que este retorna em ambos os comandos count, o valor do count(pedidositens.produto), mas esse não está repetindo as linhas, no exemplo do produto citado acima, o resultado é o seguinte:
4 - 9 - 9

Alguem sabe o que esta faltando pra funcionar ???


    select produtos.produto, count(produtostamanhos.produto), count(pedidositens.produto)  
    from produtos, produtostamanhos, pedidositens  
    where produtostamanhos.produto = produtos.produto  
    and pedidositens.produto = produtos.produto  
    group by produtos.produto, count(produtostamanhos.produto), count(pedidositens.produto);

assim da erro na clause GROUP BY

só pra constar, eu uso o firebird

vlw ai, mais alguma ideia ?

resolvido

[code]select
produtos.produto,
count(produtostamanhos.produto),

(select
    count(pedidositens.produto)
    from pedidositens
    where (pedidositens.produto = produtos.produto)) as vendas

from produtos, produtostamanhos

where produtostamanhos.produto = produtos.produto
group by produtos.produto;[/code]