Power BI中row函数+union函数实现SQL Server中的虚拟表

Power BI是微软开发的一款功能非常强大的的BI工具,可以制作非常美观的报表,但这个工具的核心是DAX,翻译为中文就是 数据分析表达式,有点类似于excel函数,但又很不一样。

DAX中的很多功能可以与SQL对应,但差异也很大。

 

本文要讲的是用 row函数+union函数实现SQL Server中的虚拟表。

 

1、sql server中的虚拟表不是一张真实存在表,是只存在于当前会话中的数据,类似这样:

SELECT 111	AS 产品编码,'2019-01-01' 销售日期,	30	数量,600 金额 UNION ALL
SELECT 222	,'2019-01-02',	25	,250 UNION ALL
SELECT 111	,'2019-01-08',	20	,400 UNION ALL
SELECT 333	,'2019-01-13',	10	,300 UNION ALL
SELECT 222	,'2019-01-16',	10	,100

在 sql server中的运行结果:

2、power bi的实现方式

输入代码:


虚拟表 = 

UNION
(
ROW("产品编码", 111 ,"销售日期", DATE(2019, 1, 1), "数量", 30, "金额", currency(600)),

ROW("产品编码", 222, "销售日期", DATE(2019, 1, 2), "数量", 25, "金额", currency(250)), 

ROW("产品编码", 111, "销售日期", DATE(2019, 1, 8), "数量", 20, "金额", currency(400)),

ROW("产品编码", 333, "销售日期", DATE(2019, 1, 13),"数量", 10, "金额", currency(300)),

ROW("产品编码", 222, "销售日期", DATE(2019, 1, 16),"数量", 10, "金额", currency(100))
)

查询结果:

 

先说说row函数的使用方法是:

(1) 第1个参数是列名,第2个参数是 列的值,后面的参数都是这个规则,另外,列名 和 值一定要对应,否则会报错。

(2)没办法指定数据类型,但是可以这样指定数据类型,比如 :111 就是integer 类型,date(2019,1,1)就是引用date函数构造日期,返回的就是datetime类型。
(3)返回的是包含1行数据的 表。

我们输入了5行数据后,这每一行都是独立的,接下来,我们用union 函数,把这些独立的行合并,返回的就是一个 包含 5行数据的表,union 函数的使用方法非常简单:union( 表1,表2,...... 表N )。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值