sql >> Databáze >  >> RDS >> Sqlserver

SQL Zobrazit všechny položky, které jsou k pronájmu před a do určitého data

Vezme mě zpět, ale to je to, co chcete ukázat VŠECHNO najaté v daném období, včetně nevrácených položek

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

Pro následnou kontrolu celkový počet dní pro každý nástroj

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. Jak mohu omezit počet řádků vrácených tímto LEFT JOIN na jeden?

  2. Příkaz MySQL pro výběr nejnovější položky konkrétního sloupce

  3. Jak získat rok a měsíc z data v MySQL

  4. předání názvu tabulky jako parametru plsql