[原創]SQL表值函數:獲取從當月計算起往前自定義月份數

 

今天我如今發現看一篇博文不可以太長,只要可以描述清楚本身想表達的東西,可以讓你們知道你要講什麼就好了。由於我今天看了一些長篇博文,真的以爲知識點太多了, 會讓人囫圇吞棗。函數

這篇博文跟我昨天發表的相似,一樣是爲了解決一個統計需求,結果是要求返回從當月起往回推算出自定義輸入的月份blog

喜歡總結的我,爲此寫了一個表值函數來解決這一需求。現記錄一下,也但願能幫助到一些也遇到此類問題的朋友。ip

首先咱們看一下執行效果圖:get

返回最近一年便是十二個月的數據,執行調用函數:SELECT * FROM [Fn_RunMonth](-12)it

image

具體函數以下:io

-- =============================================
-- 調用:SELECT * FROM [Fn_RunMonth](-12)
-- Create date:2015-01-12
-- Description:    獲取從當月計算起往前 @num 月,返回Table
-- =============================================
CREATE FUNCTION [dbo].[Fn_RunMonth] (@num INT=-12)
RETURNS @tab TABLE
    (
     Sale_Year VARCHAR(10) ,
     XSDate VARCHAR(10) ,
     Sort INT
    )
AS
    BEGINdate

        DECLARE @i INT 
        SET @i=0
        WHILE (@i>@num)
            BEGIN
                INSERT  INTO @tab
                        SELECT  [Sale_Year] = YEAR(DATEADD(month, @i, GETDATE())) ,
                                [XSDate] = MONTH(DATEADD(month, @i, GETDATE())) ,
                                Sort = @i
                SET @i=@i-1
            END
        RETURN
    END
im

若是朋友們以爲之後可能會用到的話,歡迎轉載,固然也能夠推薦一下,謝謝。 統計

 

PS:此博文是利用Windows Live Writer 2012編寫,格式效果可能不太好。 總結

相關文章
相關標籤/搜索