【发布时间】:2015-09-07 18:45:04
【问题描述】:
我有一个查询来显示表中的年份值并默认为当前年份。
select distinct year(startdate) as syear, year(startdate) as eyear, 1 as sOrder from [TTS].[dbo].[Class] where year(startdate) <> year(getdate())
union all
select year(getdate()) as syear, year(getdate()) as eyear, 0 as sOrder
order by sOrder asc, syear desc
这里的默认年份是 2015 年(Sorder 0)。现在我需要根据月份值显示默认年份。例如,如果年份是 2015 年,月份是 1 月、2 月、3 月、4 月,则默认年份是 2015 年。否则默认年份是 2016 年。我尝试了以下查询
select distinct year(startdate) as syear, year(startdate) as eyear, 1 as sOrder from [TTS].[dbo].[Class] where
year(startdate) <> year(getdate())
union all
select year(getdate())+1 as syear, year(getdate())+1 as eyear, 0 as sOrder where month(getdate()) not in(1,2,3,4)
union all
select year(getdate()) as syear, year(getdate()) as eyear, 0 as sOrder where month(getdate())in(1,2,3,4)
order by sOrder asc, syear desc
但是年份值正在重复。有什么可以帮助我的吗?
【问题讨论】:
标签: sql sql-server