Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Пребройте броя на дните on_hire през JAN

Нещо подобно?

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. NOT IN (подзаявка), генерираща нула редове

  2. Как да изберете максимален ред за всяка група в SQL

  3. Преобразувайте името на месеца в номера на месеца в SQL Server (T-SQL)

  4. Какво означава времеви печат в T-Sql в C#?

  5. Как да намеря всички тригери, свързани с таблица с SQL Server?