[英]Lag Function - Create Dummy Row for Last Value?
我無法分享代碼或細節,因此希望這個通用問題/示例有意義。
下一個到期日期字段是系統中的一個物理字段。 但是,截止日期字段不是。 對於到期日,我使用SQL Server 2012中的LAG函數從上一行“復制”下一個到期日。 它工作正常,但是我想知道是否可以創建一個虛擬行來捕獲最后一行的下一個到期日嗎?
在下面的示例中,您將看到第1、2和3行正常工作,因為該表包含實際數據,即TestID。
我的問題是:有沒有要制造的行(在此示例中為第4行),因此即使當前沒有數據(TestID),我也可以捕獲到下一個到期日2/25/2020(以及紐約的位置)。在表中存在嗎?
Row TestID Test Location Due Date Next Due Date
1 123 New York 02/05/2018* 10/13/2018
2 456 New York 10/13/2018 06/20/2019
3 789 New York 06/20/2019 02/25/2020
-------------------------------------------------------------------
4 n/a New York 02/25/2020 n/a
*calculated
我看不到lag()
與這個有什么關系。 您似乎想要:
select TestID, TestLocation, DueDate, NextDueDate
from t
union all
select null, TestLocation, max(nextDueDate) as dueDate, null as NextDueDate
from t
group by TestLocation;
請注意,我將多余的值保留為NULL
,因此您不必處理混合的字符串和非字符串類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.