Hirdetés

Új hozzászólás Aktív témák

  • nyunyu
    félisten

    Üdv!

    Van egy tábla benne tételek.
    Legyen rendelés a neve ( tetel_id, fej_id, menny, ar, kedv)
    Szeretném őket groupolni és az összesítő szerint updatelni.
    Azaz:
    SELECT tetel_id, fej_jd, sum(menny), ar, kedv FROM rendeles WHERE fej_id=? GROUP BY tetel_id, ar, kedv
    Ez a lekérdezés ugye pont ezt csinálja, hogyha azonos az ár és a kedvezmény összevonja a cikkeket.
    Hogy tudom megcsinálni, hogy ennek a lekérdezés eredményét visszarakja a rendeles táblába, felülírva azt.
    Gondoltam temp táblára, majd abba insert a fenti select majd delete a fej_id szerint majd megint instert és törölni a temp-ből utána.
    De ez legalább 3 lekérés.
    Van-e ennél jobb módszer?

    Köszi

    Erre nem lenne célszerűbb írni egy before insert (Oracle) vagy instead of triggert (MS SQL) * ami azt csinálja, hogy ha már van fej_id, tetel_id, ar, kedv értékekkel sorod, akkor annak mennyiségét, értékét megnöveli az újonnan beszúrandó mennyiséggel, mennyiség*árral?
    Ha meg nincs, akkor beszúrja az új sort?

    Mondjuk a táblákra aggatott triggerek nem szokták növelni a DB logika átláthatóságát :DDD

    *: pontos szintaxisuk nekem sincs meg fejben.

Új hozzászólás Aktív témák