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

Sporing af kontinuerlige fraværsdage fra arbejdsdage kun SQL

Som jeg nævner i kommentaren, skal du bare bruge en WHERE . Dette er selvfølgelig et blindt gæt på grund af mangel på stikprøvedata (prøven har ingen arbejdstidsdata):

--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. Irriterende advarsel i phpmyadmin

  2. Generer CSV baseret på MySQL-forespørgsel fra phpMyAdmin

  3. Konstant #1064 fejl på alt, hvad jeg gør i mySQL gennem phpMyAdmin

  4. Hvordan indstiller jeg egenskaben Tillad Nulls i tabeldesigneren af ​​SSMS til altid at være falsk?