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

SQL Hiển thị tất cả các mặt hàng đang được thuê trước đó và cho đến một ngày nhất định

Đưa tôi trở lại, nhưng đây là những gì bạn muốn hiển thị MỌI THỨ khi thuê trong kỳ, bao gồm cả các mặt hàng không trả lại

select *
from MyTable
where on_hire < @EndDate
and (off_hire >= @StartDate or off_hire is null)

Để theo dõi, tổng số ngày cho mỗi công cụ

with CTE as
(
    select *
    from MyTable
    where on_hire < @EndDate
    and (off_hire >= @StartDate or off_hire is null)
)
select Tool,
       sum(datediff(dd,
                    case
                      when off_hire > @EndDate then @EndDate
                      when off_hire is null then @EndDate
                      else off_hire
                    end,
                    case
                      when on_hire < @StartDate then @StartDate
                      else on_hire
                    end)) as DaysOnHire
from CTE
froup by 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. SQL Server Compact Edition ISNULL (sth, '') trả về giá trị boolean?

  2. 6 Hàm lấy Ngày, Tháng và Năm từ một Ngày trong SQL Server

  3. Sử dụng SMO để thay đổi vị trí mặc định của cơ sở dữ liệu SQL Server

  4. Bỏ cơ sở dữ liệu SQL Server thông qua C #

  5. phương thức xquery value () không hoạt động và đang báo lỗi