CREATE OR REPLACE FUNCTION store.generateMyyntiRaporttiRETURNS SETOF store.generateMyyntiRaportti_typeAS $$ select d.id as id, d.name as name, sum(b.amount) as amount, (SELECT sum(store.transaction_items.price * store.transaction_items.amount) FROM store.transaction_items, store.products_deposit, store.transactions WHERE store.transaction_items.products_deposit_id = store.products_deposit.id AND store.products_deposit.products_id = d.id AND store.transactions.id = store.transaction_items.transactions_id AND store.transactions.ts >= $1 AND store.transactions.ts <= $2 ) as moneyamount FROM store.transactions as a, store.transaction_items as b, store.products_deposit as c, store.products as d WHERE a.id = b.transactions_id AND b.products_deposit_id = c.id AND c.products_id = d.id AND ts >= $1 AND ts <= $2 group by d.id, d.name; $$ LANGUAGE SQL STABLE;