MS Access查询:交换机功能中的#Error - 格式问题

时间:2017-10-18 10:58:21

标签: ms-access

我正在查询JOIN到表,A和B. A包含以下字段:    TAP - 短文本(AAAA,BBBB等)    运算符 - 短文本    区域 - 短文本(区域01,区域02 ..) B包含以下一个:    TAP - 短文    MCC - 号码(20210,20032等)

我的查询是:

SELECT A.TAP, A.Operator, SWITCH(B.MCC='10020', 'Own Network', B.MCC, A.Zone) FROM A LEFT JOIN B ON A.TAP=B.TAP

查询结果显示所有Zone值的#Error值。我认为这是由于MCC是数字格式,因为,当我将MCC更改为短文本(虽然没有文本,只有数字)时,查询会转储正确的区域..但我无法更改,因为我必须将数字格式的MCC用于其他查询。

TAP |运营商|区域| MCC AAAA | ATT | 01区| 120001 BBBB |两个|自己的网络| 10020

有什么建议吗?非常感谢

2 个答案:

答案 0 :(得分:0)

我没有真正得到SWITCH声明。第三个参数(B.MCC)应该计算为布尔值,并且它不会。

使用IIF(Nz(B.MCC)=10020, 'Own Network', A.Zone)。我相信你打算做的事。

修复了其他问题:

  • MCC是一个数字,'10020'一个字符串。删除了撇号以使10020成为数字
  • MCC包含空(Null)值。使用Nz将这些值转换为0

答案 1 :(得分:0)

根据Erik的建议,问题解决了将撇号删除到数字并添加Nz以便将空值转换为零。