Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Đếm số ngày on_hire trong JAN

Một cái gì đó như thế này?

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. Hợp nhất nhiều hàng thành một hàng

  2. Giao lộ trong MDX

  3. Chức năng có giá trị bảng giết chết hiệu suất truy vấn của tôi

  4. Làm cách nào để hạ cấp tệp MDF SQL 2008 để sử dụng trong SQL 2005?

  5. Các phương pháp miễn phí để sửa chữa lỗi chỉ mục máy chủ SQL