• [原创]SQL表值函数:获取从当月计算起往前自定义月份数


    今天我现在发现看一篇博文不能够太长,只要能够描述清楚自己想表达的东西,能够让大家知道你要讲什么就行了。因为我今天看了一些长篇博文,真的觉得知识点太多了, 会让人囫囵吞枣。

    这篇博文跟我昨天发表的类似,同样是为了解决一个统计需求,结果是要求返回从当月起往回推算出自定义输入的月份

    喜欢总结的我,为此写了一个表值函数来解决这一需求。现记录一下,也希望能帮助到一些也遇到此类问题的朋友。

    首先我们看一下执行效果图:

    返回最近一年即是十二个月的数据,执行调用函数:SELECT * FROM [Fn_RunMonth](-12)

    image

    具体函数如下:

    -- =============================================
    -- 调用: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
        BEGIN

            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

    如果朋友们觉得以后可能会用到的话,欢迎转载,当然也可以推荐一下,谢谢。

    PS:此博文是利用Windows Live Writer 2012编写,格式效果可能不太好。

  • 相关阅读:
    iOS 成员变量和属性的区别
    程序如何在RAM ROM运行,内存分配与分区
    iOS CGAffineTransform你了解多少?
    iOS配置字符表,查看Crash
    苹果开发账号过期不续费会怎样?
    iOS蓝牙接收外设数据自动中断
    数据结构简述
    antd按需加载,配置babel-plugin-import插件,编译后报错.bezierEasingMixin()解决方案
    docker 启动 nginx 服务
    安装docker
  • 原文地址:https://www.cnblogs.com/lhmlyx2723356/p/4217686.html
Copyright © 2020-2023  润新知