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
sql中union多表合并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 )。

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