我有一条具有以下结构的记录,
Item ActiveFrom ActiveTo
A 1/01/2015 25/12/2018
我有一个Year条件为Where的条件。因此,每当我应用年份值时,都应获取该年份的有效记录。
我做了ablove结构
Select Item,YEAR(ActiveFrom) From Test
UNION
Select Item,YEAR(ActiveTo) From Test
所以我得到了以下两个订单项,
Item Year
A 2015
A 2018
现在,当我在2017年的条款中应用该记录时,此记录未获取,因此我需要如下输出,
Item Year
A 2015
A 2016
A 2017
A 2018
有什么想法吗?
答案 0 :(得分:0)
加入日历表:
WITH years AS (
SELECT 2015 AS year UNION ALL
SELECT 2016 UNION ALL
SELECT 2017 UNION ALL
SELECT 2018
)
SELECT
t.Item,
c.year
FROM years c
INNER JOIN Test t
ON c.year BETWEEN YEAR(t.ActiveFrom) AND YEAR(t.ActiveTo);