sql >> Databáze >  >> Database Tools >> SSMS

Sledování nepřetržitých dnů nepřítomnosti v pracovních dnech pouze SQL

Jak uvádím v komentáři, stačí použít WHERE . Toto je samozřejmě slepý odhad kvůli nedostatku údajů o vzorku (vzorek neobsahuje údaje o pracovní době):

--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. Existuje způsob, jak zkopírovat všechna data v databázi mysql do jiné? (phpmyadmin)

  2. Po změně tabulky pomocí dotazu PHP se název sloupce v phpMyAdmin nezobrazí

  3. Chyba MySQL 2003 při použití Navicat

  4. Neplatný název objektu sql