Cześć,
Mam problem z przerobieniem jednego zapytania i nie mam pojęcia o co kaman i już chwilę się z tym męczę. To zapytanie Tworzy raport i moim zadaniem było dodanie jednej kolumny.Poniżej komantarze co dodałem do pierwotnego zapytania. Wywala się w tym miejscu w którym dodałem blok zagnieżdżony ale nie wiem dlaczego... Gdy próbuje to puścić na piechotę wynik który jest zwracany jest wynikiem oczekiwanym. Wcześniej robiłem to za pomocą kursora ale efekt był ten sam. Dziękuję z góry za wszelkie sugestie! Pozdrawiam!
DECLARE
vFrmIdStart number;
---------------------------------ZMienna poniżej dodana w tym miejscu----------------------------
v_dok_numer_sort varchar2(30);
-------------------------------------------------------------------------------------------------
BEGIN --1.
vFrmIdStart := eap_globals.odczytaj_firme;
BEGIN --2.
eap_globals.USTAW_konsolidacje('T');
END;
ROLLBACK;
DECLARE vFrmNazwa varchar2(100);
vSprCzyRozlNaBO number;
v_kwotaWNnaBO number;
v_kwotaMAnaBO number;
vSprCzyRozlNaKOR number;
v_kwotaWNnaKOR number;
v_kwotaMAnaKOR number;
BEGIN
ROLLBACK;
DELETE
FROM bctt_wyniki_raportow;
-- zwykłe dokumenty
FOR x in
(SELECT *
FROM
(SELECT KLD_NIP,
KLD_KL_KOD,
KLD_NAZWA,
roz_numer,
roz_kl_kod,
dok_id ,
sum(pl_kwota_wn)wn ,
sum(pl_kwota_ma)ma ,
A ,
frm_nazwa,
knt_pelny_numer,
nvl(min(data_wymagalnosci), nvl(min(pl_data_wymagalnosci), min(dok_data_operacji))) data_wymagalnosci ,
CASE
WHEN a = ' ' THEN DOK_DATA_WYSTAWIENIA
ELSE NULL
END dok_DATA_WYSTAWIENIA -- , (select listagg(um_numer,';') WITHIN group(order by um_numer) from knt_umowy where um_data_waznosci >= to_date(:data_wym_do,'YYYY-MM-DD') and um_kl_kod = KLD_KL_KOD) umowa
,
(SELECT um_numer
FROM knt_umowy
WHERE um_id = dok_um_id) umowa
FROM
(SELECT KLD_NIP,
KLD_KL_KOD,
KLD_NAZWA,
roz_numer,
pl_kwota_wn,
pl_kwota_ma,
frm_nazwa,
knt_pelny_numer,
pl_Data_wymagalnosci,
roz_kl_kod,
dok_id ,
(SELECT dok_data_operacji
FROM kgt_dokumenty
WHERE dok_id = pl_dok_id_org) dok_data_operacji ,
CASE
WHEN roz_numer =
(SELECT dok_numer_wlasny
FROM kgt_dokumenty
WHERE dok_id = pl_dok_id_org) THEN pl_data_wymagalnosci
ELSE NULL
END data_wymagalnosci ,
PL_PL_ID_BO,
DOK_FRM_ID --, null A
,
(SELECT NAPRZOD2.nap_olek2.zapis_zrodlowy_roz(PL_PL_ID_BO, DOK_FRM_ID)
FROM dual) A ,
DOK_DATA_WYSTAWIENIA ,
dok_um_id
FROM kgt_dokumenty,
nzt_platnosci,
nzt_rozrachunki,
ckk_klienci_dane,
eat_firmy,
kg_konta
WHERE pl_roz_id = roz_id
AND pl_dok_id = dok_id
AND dok_frm_id = frm_id
AND pl_knt_id = knt_id
AND roz_kl_kod = KLD_KL_KOD
AND knt_pelny_numer like :konto --and roz_kl_kod = 134
AND pl_f_anulowana = 'N'
AND pl_f_rozliczona = 'N'
AND roz_typ = 'N'
AND kld_kl_kod not in
(SELECT frm_kl_id
FROM eat_firmy
WHERE frm_opis NOT like 'M'
AND frm_id != '0') -- ('1','5700','5900','205','6542','8542','939','8367','2053','511','117','8544','8541','8543','10694','10700','10701','10697')
AND frm_nazwa not like '%NIZAN%' --AND FRM_ID NOT IN (300171)
AND kld_zatwierdzony = 'T'
AND kld_f_aktualne = 'T'
AND to_Char(dok_data_zaksiegowania, 'YYYY') = :rok )
GROUP BY KLD_NIP,
roz_numer,
A,
KLD_KL_KOD,
KLD_NAZWA,
roz_kl_kod,
dok_id,
frm_nazwa,
knt_pelny_numer,
dok_data_wystawienia,
dok_um_id)
WHERE data_wymagalnosci BETWEEN to_date(nvl(:data_wym_od, '1900-01-01'), 'YYYY-MM-DD') AND to_date(nvl(:data_wym_do, '2999-01-01'), 'YYYY-MM-DD') ) LOOP -- 02 sprawdzenie czy czasem nie rozliczone na BO
BEGIN
SELECT count(1) INTO vSprCzyRozlNaBO
FROM
(SELECT sum(pl_kwota_wn) sum_wn,
sum(pl_kwota_ma) sum_ma,
sum(dok_kwota) sum_dok
FROM kgt_dokumenty,
nzt_platnosci,
nzt_rozrachunki,
eat_firmy
WHERE roz_kl_kod = x.roz_kl_kod
AND pl_dok_id = dok_id
AND roz_frm_id=frm_id
AND frm_nazwa=x.frm_nazwa
AND pl_roz_id = roz_id
AND roz_numer = x.roz_numer
AND pl_f_anulowana = 'N'
AND pl_f_rozliczona = 'T')
WHERE sum_wn = sum_ma
AND sum_dok=sum_wn
AND x.wn=sum_wn
AND sum_wn>0; -- korekty AS 2016-05-16
EXCEPTION WHEN no_data_found THEN vSprCzyRozlNaBO := 0;
END;
----------------------------------Ten blok dodałem----------------------------
BEGIN
SELECT knt_pelny_numer INTO v_dok_numer_sort
FROM kgt_ksiegowania ks,
kg_konta ko,
nzt_rozrachunki roz,
kgt_dokumenty dok
WHERE ks.ks_knt_ma = ko.knt_id
AND dok.dok_id = ks.ks_dok_id
AND dok_numer_sort = x.roz_numer
ORDER BY knt_pelny_numer DESC FETCH FIRST 1 ROW ONLY;
END;
DBMS_OUTPUT.PUT_LINE(v_dok_numer_sort);
DBMS_OUTPUT.PUT_LINE(x.roz_numer);
-----------------------------------------------------------------------------
IF vSprCzyRozlNaBO = 0 THEN
INSERT INTO bctt_wyniki_raportow (wr_pole_7_t, wr_pole_1_t, wr_pole_2_t, wr_pole_3_t, wr_pole_1_l, wr_pole_2_l, wr_pole_4_t, wr_pole_5_t, wr_pole_1_d, wr_pole_2_d, WR_POLE_6_t, wr_pole_8_t , wr_pole_16_t)
VALUES (x.KLD_NIP, x.KLD_KL_KOD, x.KLD_NAZWA, x.roz_numer, x.wn, x.ma, x.frm_nazwa, x.knt_pelny_numer, x.data_wymagalnosci,x.dok_DATA_WYSTAWIENIA,X.A, x.umowa,v_dok_numer_sort);
END IF;
END LOOP;
END;
END;
/
---------------------------------------------------------------------
KOSOLA ZWARACA:
602-02-C852-000
FVCU/018/01/2022
602-02-C287-000
FVCU/006/04/2022
602-02-C587-000
FVCU/191/06/2022
/Całe zapytanie...
Error report -
ORA-01403: nie znaleziono danych
ORA-06512: przy linia 107
01403. 00000 - "no data found"
*Cause: No data was found from the objects.
*Action: There was no data from the objects which may be due to end of fetch.