亲爱的安,
错误发生是因为 INTERSECT 需要两个表对比较列的数据类型相同。在你的案例中,交叉点的一侧返回的是数字键(很可能是以整数形式存储的CustomerID),另一侧返回的是文本值(可能是CustomerName或基于字符串的标识符)。DAX 强制执行严格类型匹配,因此它会抛出不兼容错误,而不是隐式转换。
正确的解决方法是确保两个输入INTERSECT都对齐在同一列和数据类型上。如果你的客户标识在事实表中是数字,而维度中是文本,你需要明确地投射一侧,例如用来VALUE()将文本转换为数字,或FORMAT()将数字转换为文本,具体取决于哪个标识符具有权威性。最佳实践是将数据模型归一化,使关系键(CustomerID)在所有表中都一致地类型化,然后在你的测量中使用该列。一旦两侧 INTERSECT 使用相同的密钥类型,测度将正确无误地计算。
如果上述回复能帮助你回答问题,请点击“接受答案”,这样社区中面临类似问题的人也能轻松找到解决方案。非常感谢你的贡献。
多米克诉