zoukankan      html  css  js  c++  java
  • [原创]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编写,格式效果可能不太好。

  • 相关阅读:
    【算法习题】青蛙跳台阶
    【转】从PowerDesigner概念设计模型(CDM)中的3种实体关系说起
    redis常用链接
    读书笔记——《redis入门指南(第2版)》第四章 进阶——4.1-5
    查询linux计算机的出口ip
    读书笔记——《redis入门指南(第2版)》第三章 入门
    vmware中的linux虚拟机配置以nat模式上网,并用xshell连接该虚拟机
    每日代码系列(1)
    第一次尝试自己编写
    原型模式
  • 原文地址:https://www.cnblogs.com/lhmlyx2723356/p/4217686.html
Copyright © 2011-2022 走看看