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

SQL Показване на всички артикули, които са наети преди и до определена дата

Връща ме назад, но това е, което искате да покажете ВСИЧКО под наем за периода, включително артикули, които не са върнати

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

За последващи действия, общ брой дни за всеки инструмент

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. Как мога да премахна дублиращи се редове?

  2. Как да възстановя индекса в колони на определена таблица?

  3. Как да активирате ad hoc разпределени заявки

  4. Как да прикача MDF без лог файл?

  5. SqlDataSourceEnumerator.Instance.GetDataSources() не намира локален екземпляр на SQL сървър 2008