PowerBI中row函数+union函数实现SQLServer中的虚拟表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)),
sql中union多表合并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 )。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。