SQL-ben hogy lehet olyan egymásba ágyazott lekérdezést írni, ahol a belső selectben a join-nál hivatkozik a külső selectre?
Valami rekurzív subquery-nek hívják, ha jól emlékszem egyetemről.
Azért kérdezem, mert lenne olyan probléma amit talán ezzel lehet megoldani:
Van két tábla amit join-al összekötök és ezekből jönnek az oszlopok (itt még nem gondolkozok subquery-n csak sima join).
Tartalmaz egy év és hónap valamint a hozzá tartozó összeg értéket is (meg egy megnevezés) meg egy id amin keresztül a 2 tábla kapcsolódik. Pl. Megnevezés attr. az X-ből, Év/Hónap/Érték attr. pedig Y-ból jön.
Viszont a hónap halmozott, szóval márciushoz tartozó érték=jan+febr+márc értékével.
Pl. van ez a három sor:
Megnevezés Év Hónap Érték
* Nyomtató eladás || 2021 || 02 || 2,5 millió
* Nyomtató eladás || 2021 || 03 || 3,5 millió
* Nyomtató eladás || 2021 || 04 || 5,4 millió
És ebből nekem kellene egy olyan sor, hogy
* Nyomtató eladás || 2021 || 04 || 1,9 millió
* Nyomtató eladás || 2021 || 03 || 1 millió
És persze nemcsak nyomtató eladás lehet, hanem többfajta eladás is.
Tehát a nem halmozott értékeket szeretném hónapra megjeleníteni: x. hónap mínusz (x-1)-ik hónap.
Hogy tudnám ezt kivitelezni?
SELECT last_name, hire_date, salary,
LAG(salary, 1, 0) OVER (ORDER BY hire_date) AS prev_sal
FROM employees
WHERE job_id = 'PU_CLERK';
LAST_NAME HIRE_DATE SALARY PREV_SAL
------------------------- --------- ---------- ----------
Khoo 18-MAY-95 3100 0
Tobias 24-JUL-97 2800 3100
Baida 24-DEC-97 2900 2800
Himuro 15-NOV-98 2600 2900
Colmenares 10-AUG-99 2500 2600
Kvázi így ugye betudod rakni az adott sorba az előző sor adott oszlopának értékét is amin akár egy számított mezőben tudsz matematikai műveletet is elvégezni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!