Witam,
jest sobie kod.

SET TERM ^ ;CREATE PROCEDURE CRM_TOWAR_ZESTAWIENIE_ZAK (
    DATA_OD Date,
    DATA_DO Date )
RETURNS (
    TOWAR Varchar(30),
    SUMA Decimal(10,2),
    JEDNOSTKA Varchar(30) )
AS
BEGIN
    FOR
        SELECT t.CRM_TOWAR_NAZWA, SUM(z.CRM_ZAP_ILOSC), j.CRM_JEDNOSTKA_NAZWA
        FROM CRM_ZAPOTRZEBOWANIE_TABLE z
        RIGHT OUTER JOIN CRM_TOWAR_TABLE t ON z.CRM_ZAP_TOWAR_ID = t.CRM_TOWAR_ID
            JOIN CRM_JEDNOSTKA_TABLE j ON t.CRM_TOWAR_JEDNOSTKA_ID = j.CRM_JEDNOSTKA_ID
        LEFT OUTER JOIN CRM_SPOTKANIE_TABLE s ON z.CRM_ZAP_SPOTKANIE_ID = s.CRM_SPOTKANIE_ID
        WHERE s.CRM_SPOTKANIE_AKTYWNY = 1 AND
              z.CRM_ZAPOTRZEBOWANIE_AKTYWNY = 1 AND
              s.CRM_SPOTKANIE_DATA BETWEEN :data_od AND :data_do
        GROUP BY t.CRM_TOWAR_NAZWA, j.CRM_JEDNOSTKA_NAZWA
        ORDER BY t.CRM_TOWAR_NAZWA
        INTO :towar, :suma, :jednostka
    DO SUSPEND;
END^
SET TERM ; ^

Sprawa ma się tak, chce żeby mi wyświetliło wszystkie towary i sumę ich ilości z danego zakresu dat. Jeżeli nie podam warunku WHERE to jest ok, sumuje mi i wzystko, natomiast jeżeli podam warunek wehere to mi tylko wyświetla towary które są w tabeli zaopatrzenie. A mam przy towarach RIGHT OUTER JOIN. Co jest nie tak w tym kodzie?

Pozdrawiam.