Disse ting udføres normalt med en tabel, der viser alle arbejdsdage i et år i stedet for en naiv formel som:
CASE WHEN (1 + TRUNC (SYSDATE) - TRUNC (SYSDATE, 'IW')) < 5
THEN 1 + (1 + TRUNC (SYSDATE) - TRUNC (SYSDATE, 'IW'))
ELSE 1
END --(on monday to thursday this returns 2 to 5, on fri/sat/sun this returns 1)
CASE WHEN (1 + TRUNC (SYSDATE) - TRUNC (SYSDATE, 'IW')) < 5
THEN TRUNC (SYSDATE) + 1
ELSE TRUNC (SYSDATE + 4), 'IW')
END --(on monday to thursday this returns tomorrow's date, on fri/sat/sun it returns next monday's date)
Ved at bruge en tabel kan du tage højde for ting som helligdage, nationale helligdage, religiøse højtider, afstemningsdage, sørgedage, ad hoc fridage, der kan opstå af firma eller politiske årsager osv. osv. Vedligeholdelse af tabellen bliver så en vigtig opgave. Hentning af den næste arbejdsdag er i bund og grund et tilfælde af forespørgsel i tabellen for MIN(date)
WHERE date > current_date