Odoo 8,9 10:
with
uitstock as (
select
t.name product, sum(product_qty) sumout, m.product_id, m.product_uom
from stock_move m
left join product_product p on m.product_id = p.id
left join product_template t on p.product_tmpl_id = t.id
where
m.state like 'done'
and m.location_id in (select id from stock_location where complete_name like '%Stock%')
and m.location_dest_id not in (select id from stock_location where complete_name like '%Stock%')
group by product_id,product_uom, t.name order by t.name asc
),
instock as (
select
t.list_price purchaseprice, t.name product, sum(product_qty) sumin, m.product_id, m.product_uom
from stock_move m
left join product_product p on m.product_id = p.id
left join product_template t on p.product_tmpl_id = t.id
where
m.state like 'done' and m.location_id not in (select id from stock_location where complete_name like '%Stock%')
and m.location_dest_id in (select id from stock_location where complete_name like '%Stock%')
group by product_id,product_uom, t.name, t.list_price order by t.name asc
)
select
i.product, sumin-coalesce(sumout,0) AS stock, sumin, sumout, purchaseprice, ((sumin-coalesce(sumout,0)) * purchaseprice) as stockvalue
from uitstock u
full outer join instock i on u.product = i.product