Ú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
- A fociról könnyedén, egy baráti társaságban
- Házimozi haladó szinten
- VR topik
- Gumi és felni topik
- Konkrét moderációval kapcsolatos kérdések
- One otthoni szolgáltatások (TV, internet, telefon)
- Kormányok / autós szimulátorok topikja
- Építő/felújító topik
- SONY LCD és LED TV-k
- The Division 2 (PC, XO, PS4)
- További aktív témák...
- Asus laptop E1504F Ryzen 3
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Apple iPhone Air Black 256GB használt karcmentes 100% akku (20 ciklus) garancia 2026.12.20.-ig
- AKCIÓ! Intel Core i9 10850K 10 mag 20 szál processzor garanciával hibátlan működéssel
- Sony PS3/PS4/PS5 és kézikonzolok Okosítása és Szoftveres szintű javítása - MÁR 13.00-S PS4 IS!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
