Keresés

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

  • nyunyu

    félisten

    válasz Jim Tonic #4548 üzenetére

    Ja tényleg, ablakozó függvényekkel lehet, hogy egyszerűbb, mivel ott összetett rendezést is tudsz alkalmazni:

    select
    p.product,
    p.price
    from products p
    join (select
    p1.product,
    nvl(p2.valid_from, to_date('0000-01-01')) valid_from,
    nvl(p1.valid_to, to_date('9999-12-31')) valid_to,
    row_number() over (partition by p1.product
    order by nvl(p2.valid_from, to_date('0000-01-01')) desc,
    nvl(p1.valid_to, to_date('9999-12-31')) asc) rn
    from products p1) b
    on b.product = p.product
    and b.valid_from = nvl(p.valid_from, to_date('0000-01-01'))
    and b.valid_to = nvl(p.valid_to, to_date('9999-12-31'))
    and b.rn = 1;

    Ezzel sorszámozod az egy termék rekordjait kezdő dátum szerint csökkenő és azon belül érvényességi dátum szerint növekvő sorrendben, majd veszed a legelső rekordot minden termékhez.

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