Hirdetés

Hirdetés

!!! SZERVERLEÁLLÁS, ADATVESZTÉS INFORMÁCIÓK !!!
Talpon vagyunk, köszönjük a sok biztatást! Ha segíteni szeretnél, boldogan ajánljuk Előfizetéseinket!

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

  • bambano

    titán

    válasz nyunyu #5900 üzenetére

    én is megcsináltam, még éjjel :)

    with naptar as (
    select napok,
    (case when date_part('dow',napok) between 1 and 5 then 1 else 0 end)::integer
    *
    (case when calendar.date is null then 1 else 0 end)::integer as isworkday
    from
    generate_series(now()::date,now()::date+'60 days'::interval,'1 day'::interval) as napok
    left outer join
    calendar on napok=calendar.date)
    select napok::date,-1+sum(isworkday) over (order by napok) as workdays
    from naptar where isworkday=1;

    kb. ennyi az alap, ebből lehet közvetlen lekérdezést csinálni vagy window funkcióval és rownumberrel, vagy én csináltam belőle egy view-t és abból közvetlenül lehet selectelni.

    egy rakás lehetséges optimalizáció még van benne, például a két case helyett lehetne egyet, stb.

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