如何使用日期列获取数字列的当前年份和上一年?
可用的列是 高级列具有计算/数值。例子是115.20,325,126.29。 日期列。例如03/09 / 2016,12 / 10/2015
Date column Premium Column
03/09/2016 115.20
12/10/2015 325,126.29
我需要创建2个新列,即当前日期溢价和先前日期溢价。
我需要获得当前日期保费的结果是115.20 并且对于先前的列是325,126.29
Current Date premium Prior Date premium
115.20 325,126.29
如果日期部分不允许其他表达式(像Premium Column这样的数字列)获取当前年份,如何为这两个新列应用日期部分功能?
答案 0 :(得分:0)
如果你有SQL Server 2008及更高版本,你可以尝试如下。您也可以尝试用CTE替换内部查询部分来重构。
<强>逻辑:强> 内部查询根据日期提供表行的排名,然后我们根据(当前表的排名)=(先前表排名)-1进行自联接
SELECT
t1.[Premium Column] as [Current Date Premium],
t2.[Premium Column] as [Prior Date Premium]
FROM
(
SELECT
*,
ROW_NUMBER() OVER (ORDER BY [Date column] ASC) AS Ranking
FROM Tbl
)t1
LEFT JOIN
(
SELECT
*,
ROW_NUMBER() OVER (ORDER BY [Date column] ASC) AS Ranking
FROM Tbl
)t2
ON t1.Ranking=t2.Ranking-1