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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yupeigu/article/details/86715102

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 )。

展开阅读全文

没有更多推荐了,返回首页