zoukankan      html  css  js  c++  java
  • 整理多个技术点的sql综合应用:(开拓思路,SELECT子句内嵌子查询)续,用表变量替换临时表


    --设定起始日期为当前年的第一天
    DECLARE @dtDate DATETIME@iRow INT 
    SET @dtDate = DATEADD(yy, DATEDIFF(yy, 0GETDATE()), 0)
    SET @iRow = 10

    --批量生成测试数据,日期规则递增的列、及随机的数值列
    DECLARE @tmp TABLE( dtDate DATETIME, dcQty INT, dcTotalQty INT )
    DECLARE @iRank INT
    SET @iRank = 1

    INSERT  INTO @tmp ( dtDate, dcQty )
    VALUES  ( @dtDate, CHECKSUM(NEWID()) % 100 ) 
    WHILE @iRank <= @iRow
    BEGIN
        
    INSERT  INTO @tmp ( dtDate, dcQty )
                
    SELECT  DATEADD(DAY@iRank, dtDate),
                        CHECKSUM(
    NEWID()) % 100
                
    FROM    @tmp
                
    WHERE   DATEADD(DAY@iRank, dtDate) < DATEADD(DAY@iRow@dtDate)

        
    SET @iRank = @iRank * 2
    END

    --显示日期列、当前数值、累计数值
    SELECT  a.dtDate,
            a.dcQty,
            ( 
    SELECT    SUM(b.dcQty)
              
    FROM      @tmp AS b
              
    WHERE     b.dtDate <= a.dtDate
            ) 
    AS dcTotalQty
    FROM    @tmp AS a
  • 相关阅读:
    《精通情绪》读书笔记
    绩效评估与绩效反馈
    数据分析报告格式zz
    学会谈判zz
    javascript中的双向绑定
    理解 DocumentFragment
    理解Object.defineProperty()
    Vue 改变数组中对象的属性不重新渲染View的解决方案
    ES6中Object.assign() 方法
    控制input输入框光标的位置
  • 原文地址:https://www.cnblogs.com/zhaoguan_wang/p/1656423.html
Copyright © 2011-2022 走看看