Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Policz liczbę dni on_hire w styczniu

Coś takiego?

declare @t table (id int, tool  varchar(10),    on_hire date,    off_hire date);
insert into @t values
(1,1,'2016-01-01','2016-01-10'),
(2,1,'2016-01-15','2016-01-20'),
(3,2,'2015-12-01','2016-01-10'),
(4,3,'2016-01-20','2016-02-10'),
(5,4,'2015-01-01','2017-01-10')


select tool,  sum(datediff(d,on_hire,off_hire)) + 1 dayshired
from
(
select tool,
        case 
            when on_hire < '2016-01-01' then '2016-01-01'
            else on_hire 
        end as on_hire,
        case 
            when off_hire > '2016-01-31' then '2016-01-31'
            else off_hire 
        end as off_hire         
from @t
) s
group by s.tool


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak znaleźć zależności klucza obcego w SQL Server?

  2. TSQL Pivot bez funkcji agregującej

  3. T-SQL:sprawdzanie formatu wiadomości e-mail

  4. Przenoszenie tabeli SQL Server do innej grupy plików

  5. Wygenerować skrypt wstawiania dla wybranych rekordów?