sql >> Database >  >> Database Tools >> SSMS

Doorlopende dagen van afwezigheid bijhouden van alleen werkdagen SQL

Zoals ik in de opmerking vermeld, gebruik gewoon een WHERE . Dit is natuurlijk een blinde gok vanwege een gebrek aan voorbeeldgegevens (de steekproef heeft geen werkurengegevens):

--I prefer CTEs over subqueries
WITH CTE AS(
    SELECT s.date_sick,
           s.employee_number,
           ROW_NUMBER() OVER (PARTITION BY employee_number ORDER BY date_sick) AS rn
    FROM dbo.sickness s)
SELECT C.date_sick,
       C.employee_number,
       DENSE_RANK() OVER (ORDER BY C.employee_number, DATEADD(DAY, -C.rn, C.date_sick)) AS sickness_id,
       wh.workinghours
FROM CTE C
     JOIN dbo.workinghours wh ON C.employee_number = wh.employee_number
WHERE wh.working_hours > 0
ORDER BY C.employee_number,
         C.date_sick;


  1. 999,99 Waarde voor 1138 In Mysql/PhP Mijn Admin

  2. Hoe de datatypes van de resultaten van een SQL bepalen?

  3. mysql, ASC een reeks getallen met bestaande gegevens

  4. MySQL Workbench crasht bij opstarten op Windows