我在表A和表B之间建立了“多对一”关系。表A包含字段Date,Product,SalesValue,表B包含:Product和Selection。样本数据:表A(从上到下按值排序):
Date Product Subproduct Value
1-1-2020 Red A 200
1-1-2020 Red B 500
1-1-2020 Red C 600
1-1-2020 Red D 1500
表B:
Product Subproduct Exclude
Red A Yes
Red B Yes
当我将“导入模式”用于表B时,请在产品上建立多对一关系。使表格可视化后,输出为以下内容:
Date Product Subproduct Value Exclude
1-1-2020 Red A 200 Yes
1-1-2020 Red B 500 Yes
1-1-2020 Red C 600
1-1-2020 Red D 1500
但是,当我对表B使用“直接查询”模式并在产品上使用多对一关系时。我的输出如下:
Date Product Subproduct Value Exclude
1-1-2020 Red A 200 Yes
1-1-2020 Red B 500 Yes
1-1-2020 Red C
1-1-2020 Red D
我的目标是获得以下输出,在该输出中,我采用了Value的最小值并将表示为“已排除-是”的产品排除在外。
Date Product MinValue
1-1-2020 Red 600
我现在正在使用以下DAX公式
MinValue = Calculate(Min('TableA'[Value]),'TableB'[Excluded] <> "Yes")
但是,使用此公式,我得到以下输出:
Date Product MinValue
1-1-2020 Red
如何在某种程度上通过“直接查询模式”获得所需的输出作为“导入模式”结果?
谢谢。
在2个度量值以下创建这些-
exclude =
VAR current_row_product = MIN('Table A'[Product])
VAR current_row_sub_product = MIN('Table A'[Subproduct])
VAR find_table_B_exclude =
CALCULATE(
MIN('Table B'[Exclude]),
FILTER(
ALL('Table B'),
'Table B'[Product] = current_row_product
&& 'Table B'[Subproduct] = current_row_sub_product
)
)
RETURN find_table_B_exclude
exclude_final =
VAR current_row_value = MIN('Table A'[Value])
VAR Table_A_min_value =
CALCULATE(
MIN('Table A'[Value]),
FILTER(
ALL('Table A'),
'Table A'[exclude] <> "Yes"
)
)
RETURN
if(
[exclude] = "Yes",
"Yes",
IF(
current_row_value = Table_A_min_value,
"NO",
"Yes"
)
)
这是2小节的输出-
现在应用可视化级别过滤器以仅显示Final_exclude = NO且输出如下的行:
- - -第2部分 - -
在直接查询中,您需要使用左连接查询,如下所示:
select A.Date,A.Product,A.Value,B.Selection
from table_a A
left join table_b B on A.Product = B.Product
上面的查询将保持在你的列值的价值为绿色和黄色的地方,你在你需要的输出显示空白它们。如果确实需要,您可以在下面的查询中使用此命令-
select
A.Date,
A.Product,
case when B.Selection is null then null else A.Value end as Value,
B.Selection
from table_a A
left join table_b B on A.Product = B.Product
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句