- AMD K6-III, és minden ami RETRO - Oldschool tuning
- TCL LCD és LED TV-k
- Alaposan megdrágultak az ASUS Zenbookjai
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
- Nem indul és mi a baja a gépemnek topik
- Philips LCD és LED TV-k
- Milyen egeret válasszak?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Minden fronton drágulást vár a DRAM-piacon a Trendforce
- Harminc százalékos áremelésnél állhat meg az Intel
Új hozzászólás Aktív témák
-
nyunyu
félisten
válasz
Apollo17hu
#5214
üzenetére
Az a baj, hogy az előző lépésben számolt értékre van szükséged a következő kiszámolásához, és nem szimplán szummázod a korábbi értékeket.
Így vagy rekurzívan számolod ki, vagy ciklust írsz rá.
Ezekre nem nagyon van szabvány szintaxis, kb. minden DBnek más megoldása van rá.
Oracle alatt valahogy így nézne ki a ciklusos megoldás:
DECLARE
v_id varchar2(10);
v_ertek number;
v_korr_ertek number := 0;
CURSOR c is
SELECT id, ertek
FROM proba
ORDER BY id;
BEGIN
OPEN c;
LOOP
FETCH c INTO v_id, v_ertek;
EXIT WHEN c%notfound;
v_korr_ertek := CASE WHEN v_korr_ertek + v_ertek > 0
THEN 0
ELSE v_korr_ertek + v_ertek
END;
dbms_output.put_line(v_id || ',' || v_ertek || ',' || v_korr_ertek);
/*
UPDATE proba
SET korr_ertek = v_korr_ertek
WHERE id = v_id;
*/
END LOOP;
CLOSE c;
END;Deklarálsz egy kurzort, amiben azonosító szerint növekvő sorrendben jönnek a rekordok, aztán azon egyesével végig mész, kiszámolva az aktuális korrigált értéket.
Új hozzászólás Aktív témák
- Apple iPhone 12 Pro Max 256 GB Blue 100% Akkumulátor 1 év Garancia Beszámítás Házhozszállítás
- iPhone 16 Pro Max 156GB Fekete Titán - 27% ÁFA (0397)
- HP EliteBook 650 G10 15,6" i5 -1335u, 16GB RAM, 512GB SSD, jó akku, számla, 6 hó gar
- 203 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 7 7745HX, RTX 4070
- Eladó Samsung Galaxy A50 4/128GB szivárvány / 12 hónap jótállás
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

