2013-04-01 80 views
0

我收到一個語法錯誤,我已經多次更改它,重新輸入並嘗試繪製一個地圖。現在,當我的腦袋快要爆發了,絕望之餘,我正轉向一個對此有所瞭解的人。語法錯誤SQL Access嵌套IIF ISNULL語句

我可能會推動它試圖抓住IIF語句的不同罪名,但可能這個問題不在於技術,更多的是有眼...

我不明白的問題與FROM/WHERE條款,但它們提供了額外的參考。

請幫助我,如果我做的完全錯誤的東西:

(SELECT DISTINCT(COUNT(IIF(ISNULL(CombineTables.[Product Description]), 

IIF(ISNULL(CombineTables.[Product Number (OEM)]), 


IIF(ISNULL(CombineTables.[Product Number (under supplier PA)],"Incomplete Data",CombineTables.[Product Number (under supplier PA)])), 

CombineTables.[Product Number (OEM)]), 

CombineTables.[Product Description]))) 
FROM CombineTables WHERE [PA#]=Forms!PADiagnosticsForm!Combo2 AND "QTR." & " " & CombineTables.Quarter & "-" & CombineTables.Year=Forms!PADiagnosticsForm!List68) 

FROM CombineTables 
WHERE CombineTables.[Price Agreement Price]*CombineTables.Quantity-CombineTables.[Total Extended Price]<>0 And CombineTables.[PA#]=Forms!PADiagnosticsForm!Combo2 And "QTR." & " " & CombineTables.Quarter & "-" & CombineTables.Year=Forms!PADiagnosticsForm!List68; 

我感謝你在前進。

+0

你用簡單的'IIF' /'ISNULL'組合成功了嗎? –

+1

這是我見過的最晦澀難懂的疑問之一。我很難讀懂它,甚至猜測你在這裏有什麼意圖。另外,它看起來像是從另一個更大的查詢中提取出來的,有些東西丟失了,看起來並不合理(以'(')開始,而且'WHERE'子句中有奇怪的東西,比如''「 QTR。「&」「',爲什麼不簡單地使用''QTR。'',因爲它是同一件事?首先清理這個查詢,刪除WHERE子句或者使用硬編碼的值進行調試,然後刪除所有東西,測試它非常耗時 –

+0

該查詢似乎試圖將'DISTINCT'作爲一個函數,但它不是Access SQL中的函數。 – HansUp

回答

1

有幾件事情不對您的查詢:

  1. 它是不完整的。 (之前的第一個SELECT使其成爲第二個FROM CombineTables之前的表達式。因此缺少領先的SELECT。如果這不是你的完整查詢,那麼它不會幫助那些試圖幫助你的人。
  2. NZ(A,B) is identical to and more concise than IIF(ISNULL(A,B,A))`
  3. 你SELECT COUNT圖案是與所有的IIF(ISNULL小號特別可疑。因爲實際上,什麼是COUNT -ed永遠不是NULL,因此您不妨將COUNT中的整個塊重寫爲COUNT(1)COUNT不像SUM不關心被計數的實際值,它只關心值是否爲NULL(計爲0,任何非NULL都計爲1)。