Все довольно просто (по крайней мере в субд Oracle) в общем как-то так:
vGoods - твоя таблица goods
vGoodMoving - твоя таблица GoodMoving
date1 - твое поле date (в оракле нельзя создать поля с именем date)
Код:
SELECT m.*,
g.enterycode AS Номенклатурный_номер,
g.name || ' ' || g.Width || ' ' || g.sort
AS Название_размер_сорт,
g.price AS Цена,
g.price * m.kol AS Количество
FROM ( SELECT m.good,
(NVL (SUM (CASE WHEN m.movingtype = '+' THEN m.COUNT END),
0)
- NVL (
SUM (CASE WHEN m.movingtype = '-' THEN m.COUNT END),
0))
AS kol
FROM vGoodMoving m
WHERE date1 BETWEEN SYSDATE - 50 AND SYSDATE + 50
GROUP BY m.good) m
LEFT JOIN
vGoods g
ON m.good = g.id;