2017-10-18 94 views
0

我正在進行JOIN到表A,B的查詢。 A包含以下字段: TAP - 短文本(AAAA,BBBB等) 運算符 - 短文本 區 - 短信(01區,02區..) B包含以下之一: TAP - 短文本 MCC - 號碼(20210,20032等)MS Access查詢:開關函數中的#Error - 格式問題

我的查詢是:

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 

查詢結果顯示#所有錯誤值區域值。我認爲這是由於MCC處於數字格式,因爲當我將MCC更改爲短文本(雖然沒有文本,只有數字)時,查詢轉儲了正確的區域..但我無法更改,因爲我必須以數字格式使用MCC進行其他查詢。

TAP |運算符|區域| MCC AAAA | ATT |區域01 | 120001 BBBB |兩個|自己的網絡| 10020

有什麼建議嗎?非常感謝

回答

0

我並沒有真正得到SWITCH聲明。第三個參數(B.MCC)應該評估爲布爾值,而不是。使用IIF(Nz(B.MCC)=10020, 'Own Network', A.Zone)。我相信這就是你打算做的。固定

其他問題:

  • MCC是一個數字,'10020'的字符串。刪除撇號使10020
  • MCC包含空的(Null)值。使用Nz將這些值轉換爲0
+0

謝謝。我也嘗試了IIF語句,但兩者都不工作。結果相同,當MCC爲空時,有MCc和Zone 01時的區域字段錯誤或與#Error不同的任何值。 –

+0

查看當前編輯 –

+0

非常感謝Erik。現在正在工作。區域轉儲我想要的值。那麼,Nz是如何工作的?它返回一個字符串? –

0

按照埃裏克的建議,問題就解決了刪除撇號的數量和以拋空值爲零addiding新西蘭的用戶。