Вообще, тут надо править структуру БД. Все записи должны быть в одной таблице и отличаться просто по типу (ну для простоты можно еще и по знаку, в зависимости от операции с товаром). Избавишься от большого кол-ва потенциальных проблем.
А в данном случае, если заьить на оптимальность, то можно сделать так:
Код:
select idtov, sum(skolvo) from
(
select idtov, (sum(kolvo)) as skolvo from vozv_tov Group by idtov
union all
select idtov, (sum(kolvo)) as skolvo from nak_tov Group by idtov
union all
select idtov, (sum(kolvo)) as skolvo from oprihdovanie Group by idtov
union all
select idtov, -1 * (sum(kolvo)) as skolvo from prod_tov Group by idtov
union all
select idtov, -1 * (sum(kolvo)) as skolvo from spisanie Group by idtov
) foo
group by idtov
where idtov = 2
Как-то так. Только это очень дорого для БД делать такой запрос.