美文网首页
sql:拉链表改版为每月明细数据

sql:拉链表改版为每月明细数据

作者: 徐胥 | 来源:发表于2021-04-29 17:25 被阅读0次

拉链表指的是,把一个事物在历史上的所有有效状态,在一个表中用最少行表述清楚。通常包含事物X、有效开始时间、有效结束时间、状态更新时间。

这样的表通常都在DW逻辑处理层。

当我们需要产出报表层的时候,我们通常就需要把这种大信息量的表,读取成更易读的形式,比如我们转化成每月一版的数据,以更便捷地支持各种业务需求。

企业常用方案,是利用SQL内置循环,对所需月进行逐月写数。具体代码如下:

Declare @i int  --@i是一个负数,用于标定更新的月份数,比如-12,就是需要更新近1年的数据

Declare @Date date --@Date是一个日期变量,用于存放指定日期

While @i < 0  --SQL循环开始

Begin

Set @Date = --利用@i拿到标定更新月份的指定日期

insert into B表

Select  字段a,字段b

From ( -拿到符合指定日期有效的数据并插入

Select * From A表 where StartDate<=@Date and EndDate>@Date 

) a

Set @i=@i+1  --该月数据已更新,循环进入下一个月的写入

End

相关文章

  • sql:拉链表改版为每月明细数据

    拉链表指的是,把一个事物在历史上的所有有效状态,在一个表中用最少行表述清楚。通常包含事物X、有效开始时间、有效结束...

  • 记一次功能复盘

    背景 运营需要签约报表明细做数据分析,前期是通过sql导出全量的数据明细,现在要将线下做到线上。理解为将线下那坨s...

  • 怎样用TimeTrack数据制作月报(Excel实例)

    以“月”为单位来制作报表,相比“周报表”引用的导出数据区域是“明细数据”。 导出明细数据后,把明细数据粘贴到Exc...

  • 【SQL实用方案1】将起止有效时间改版为月末版明细数据

    日常处理sql的时候均会遇到类似问题:员工信息表里存在入离职时间,每当有人员变动的时候,底层表中将修改或新增记录行...

  • 每月开支明细

    今天和男友聊到存款问题,他说他没有存款,我说你也工作七八年了,怎么会没有存款呢?他说挣的钱都花了,然后一一算给我听...

  • 算法与数据结构知识汇总(二、链表)

    1、概念 2、链表的数据结构 单向链表的数据结构如下图: 上图数据结构为单向链表,简称单链表,该数据结构由若干个节...

  • 关于LinkedList

    概念及特性 底层数据实现是双向链表数据结构,是无序列表,可以放相同元素 双向链表为链表结构的子数据结构,每个节点有...

  • DbFlow

    cardContactModels 为集合数据 DbFlow sql转化特例1 DbFlow sql转化特例2

  • MySQL与Python交互

    一、准备数据 1、创建数据表 2、插入数据 二、SQL演练 1. SQL语句的强化 查询类型cate_name为 ...

  • 数组、链表、二叉树、队列、栈、堆

    数组 1、数组存储的数据在地址空间上是连续的。2、方便数据的查找,查找数据的时间复杂度为O(1)。 链表 1、链表...

网友评论

      本文标题:sql:拉链表改版为每月明细数据

      本文链接:https://www.haomeiwen.com/subject/qxmwrltx.html