博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 1.背景 前几天看到群里有朋友在搞特殊结算日期,主要不是按照正常日期里的整月,按照比如:上月21号至本月20号作为结算周期,由于这样的结算日期,无法使用pp里面的时间智能函数. pp内置了很多时间智能函数,但是都无法满足需求,dax只要你创建上下文即可满足业务需求,今天就简单写个这样的度量值. 2.数据源 calendar表 2017/1/1-2018/12/31 fact表 2017/1/1-2018/12/31的随…
1.日期函数表作用 经常使用Excel或者PowerBI,Power Pivot做报表,时间日期是一个重要的纬度,加上做一些钻取,时间日期函数表不可避免.所以今天就给大家分享一个自定义的做日期表的方法,当然自己使用Excel用公式做一个也很快,八仙过海各显神通.我对C#比较了解,就用自己最了解的方式做了一个.大家可以自己扩充,或者可以把需求提供我,我统一完善.比如下面这个表(来自一个Power Pivot课程). 本文原文地址:http://www.cnblogs.com/asxinyu/p/P…
环境要求:2005+ 在日常需求中常常会有行转列的事情需求处理.假设不是动态的行,那么我们能够採取case when 罗列处理. 在sql 2005曾经处理动态行或列的时候,通常採用拼接字符串的方法处理.在2005以后新增了pivot函数之后,我能够利用这样函数来处理. 1.动态SQL注入式推断函数 --既然是用到了动态SQL,就有一个老话题:SQL注入. 建一个注入性字符的推断函数. CREATE FUNCTION [dbo].[fn_CheckSQLInjection] ( @Col nva…
今天在工作的时候遇到了行列转换的问题,记得去年有一段时间经常写,但是许久不用已经记不太得了.好记性不如烂笔头,忙完之后赶紧记录一下. 关键字:PIVOT(行转列),UNPIVOT(列转行) 先说说 PIVOT(行转列)这是我今天遇到的问题 PIVOT(行专列) 主要语法:PIVOT(聚合函数(列) FOR 列 in (…) )AS P 完整语法: table_source PIVOT( 聚合函数(value_column) FOR pivot_column IN(<column_list>)…
select OPER_TIME, MICROPAY, REFUND from ( select trunc(oper_time) oper_time, class_name, sum(total_fee) total_fee from wx_pay_detail group by trunc(oper_time),class_name ) pivot(sum(total_fee) for class_name in ('MicroPay'as "MICROPAY",'Refund'…
博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 这两天有朋友在交流,dax中使用时间智能函数写日环比,一个 dateadd 就可以了.但是有些业务不是每天都连续发生的,比如股票,周末就没数据,要环比上一个日期就不太好使了.诸如此类业务不连续的业务如何写日环比呢? 二.数据源 需求: 计算: test表中每天value与上一日期的变化百分比: 说明: 由于日期是非连续, 有空值: 例如: 2019/6/10需要取2019/6/6号的值做除法运算. 感谢Q友…
在Oracle中,如果要实现行列转换,较为常见的是用DECODE和CASE语句.对于简单的行列转行,DECODE和CASE语句尚能应付.在逻辑比较复杂,分组聚合较多的场景中,DECODE和CASE语句则力有不逮.而pivot则可完美解决这一切. 首先,我们来看看Oracle对于其的解释: 可见,pivot是数据仓库中的关键技术,它利用交叉查询(crosstabulation query)将行转换为列. 基本语法如下: SELECT .... FROM <table-expr> PIVOT (…
在Sqlserver下巧用行列转换日期的数据统计 前言 在SQLSERVER 中有很多统计函数的基础语法,有使用Group By 或 partition by 后配合Sum,Count(*) 等用法.常应用于统计网站的PV流量.合同项目中月收入等业务场景中.在文中我分享下最近做过的统计小案例,和大家互相学习下:) 背景 合同中行项目按月收入的统计 1.业务逻辑及需求  1.1 表业务逻辑 合同是公司间互相签署的法律契约,一份合同从诞生起,就开始流转于公司的各个部门,最核心的还是盈亏的数值.盈亏是…
一.创建存储过程 if Exists(select name from sysobjects where NAME = 'sp1LoginUser' and type='P')drop procedure sp1LoginUserGOCREATE PROCEDURE [dbo].[sp1LoginUser]-- Add the parameters for the stored procedure here@username NVARCHAR(50)ASBEGINDECLARE @identit…
2013-8-20 1.    SQL查询表的行列转换/小计/统计(with  rollup,with cube,pivot解析) 在实际的项目开发中有很多项目都会有报表模块,今天就通过一个小的SQL查询统计来讲解一下实际开发中比较常用的行列转换/小计/统计等报表统计相关的常用知识点. 题目如下: 查询sales 和stores表,得出1993年每个store每季度销售数量及小计和总计,查询出的结果如下 其中sales表的数据结构如下: 其中stores表的数据结构如下: 1.1 普通方法(容易…