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.