Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PowerBi:如何比较两个表中的数字/Ip范围?_Powerbi_Range_Ip_Powerquery - Fatal编程技术网

PowerBi:如何比较两个表中的数字/Ip范围?

PowerBi:如何比较两个表中的数字/Ip范围?,powerbi,range,ip,powerquery,Powerbi,Range,Ip,Powerquery,我试图比较两个具有不同ip v4范围的表,它们存储为cidr表示法 我的第一步是使用最小ip/子网ip(作为32位数字)和最大ip/广播ip(作为32位数字) 如果表A范围等于或包含在表B范围内,我希望设置一个真标志(新列)。 我需要用PowerQuery/Dax代码来完成 (SQL可能不错,但目前不是首选解决方案) 在这种情况下,“简单连接”不起作用,因此我正在使用PowerQuery寻找合适的解决方案: 我的伪SQL代码: SELECT count(a.cidr_subnet) as nb,

我试图比较两个具有不同ip v4范围的表,它们存储为cidr表示法

我的第一步是使用最小ip/子网ip(作为32位数字)和最大ip/广播ip(作为32位数字) 如果表A范围等于或包含在表B范围内,我希望设置一个真标志(新列)。 我需要用PowerQuery/Dax代码来完成 (SQL可能不错,但目前不是首选解决方案)

在这种情况下,“简单连接”不起作用,因此我正在使用PowerQuery寻找合适的解决方案:

我的伪SQL代码:

SELECT count(a.cidr_subnet) as nb, a.cidr_subnet
FROM DB1.TableA a
left join DB2.TableB b
on (inet a.cidr_subnet <<= inet b.cidr_subnet)
group by a.cidr_subnet;
有SQL解决方案吗?或者可以在PowerBI和PowerQuery中实现这一点

具有数字范围的示例场景

Table A Ranges
StartNb, EndNb
010, 100
120, 300
400, 500
600, 700

Table B Ranges
StartNb, EndNb
010, 100
110, 350
420, 450

Result
StartNb, EndNb, Included in Table B range
010, 100, True
120, 300, True
400, 500, False
600, 700, False
示例sceanrio,IP范围为CIDR符号形式:

Table A Ranges
cidr_subnet
1.2.3.0/24
1.2.4.0/24
1.2.5.0/24
1.3.3.0/24
1.3.4.0/24
1.3.5.0/24


Table B Ranges
cidr_subnet
1.2.3.0/24
1.3.0.0/16

Result
cidr_subnet,    included in Table B range
1.2.3.0/24  True
1.2.4.0/24  False
1.2.5.0/24  False
1.3.3.0/24  True
1.3.4.0/24  True
1.3.5.0/24  True
Table A Ranges
cidr_subnet
1.2.3.0/24
1.2.4.0/24
1.2.5.0/24
1.3.3.0/24
1.3.4.0/24
1.3.5.0/24


Table B Ranges
cidr_subnet
1.2.3.0/24
1.3.0.0/16

Result
cidr_subnet,    included in Table B range
1.2.3.0/24  True
1.2.4.0/24  False
1.2.5.0/24  False
1.3.3.0/24  True
1.3.4.0/24  True
1.3.5.0/24  True