[英]Date difference between non-consecutive rows with random time differences and group between rows in T-SQL
[英]SQL - Count month difference in non-consecutive date period
我正在嘗試提取會員更新了多少個月的會員資格。 如圖所示,該會員從2018年開始訂閱了4年。但是,她在2019年結束的一年中停止了訂閱。然后,在2020年重新開始會員。
每個會員資格有效期為 12 個月。 如果我們查看從 2022-05-08 開始的最后一個成員資格,它將在 2023-05-08 結束。 但是,我只想更新總月數(getdate - 2022-09-14)。
請告知我如何處理這個問題。 謝謝!
假設您計划應用sum(monthcount)
,您可以將monthcount
包裝在 CASE 語句中以檢查vip_end
是否大於今天的日期:
sum(case when vip_end > getdate() then ... else monthcount end)
您在其中做什么...
取決於您是否只想計算日期范圍內的不同月數(例如,1 月 31 日 -> 2 月 1 日被計為整月,因為它只考慮 1 月 -> 2 月):
datediff(month, datecreated, getdate())
或者也許根據一個月的平均天數計算月數:
datediff(day, datecreated, getdate())*12.0/365.25
或者可能是其他東西......這真的取決於你想要達到的細節水平。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.