У меня проблема с запросом, мой стол выглядит примерно как this.Запрос с ошибками
В результате запроса я хочу, чтобы начало месяца текущего дня знало, что если январь начинается 01/01/2017. Мы начинаем с последних дней месяца, мы знаем, что начало месяца - конец предыдущего месяца плюс один. Мой запрос выглядит следующим образом:
select *
from (select top 11 case when replace(convert(varchar, EndMonth, 111), '/','-') = replace(convert(varchar, getdate(), 111), '/','-') then replace(convert(varchar, EndMonth, 111), '/','-') else replace(convert(varchar, DATEADD(day,1,EndMonth), 111), '/','-') end as inicio
from EndMonths
where EndMonth >= convert(date,getdate())
and Year between DATEPART (year, getdate())
and ((DATEPART (year, getdate())+1)) or id = (select top 1 id-1 from P_materials.dbo.dia_cierre_fiscal where Year= DATEPART (year, getdate()) and Month(EndMonth) = Month(getdate()) order by EndMonth desc)
order by EndMonth)a
union
select case when GETDATE()<=(select EndMonth from EndMonths where Year=2017 and NameMonth='Jenuary') then convert(varchar,YEAR(GETDATE()))+'-01-01' else '' end
он работает, прежде чем он был февраль, когда он был февраль он не дал мне тот же результат.
Это NameMonth = 'Jenuary' – user1854438
это не то, что вы ищете: http://stackoverflow.com/questions/3503742/how-to-get-date-representing-the-first-day- из месяца в месяц – kloarubeek
извините, не так, что начало месяца - это EndMonth предыдущего месяца плюс день, например, если конец января - 03/02/2017, начало февраля будет 04/02/2017. Следует уточнить, что они являются финансовыми месяцами компании –