语法错误SQL Access嵌套IIF ISNULL语句

时间:2013-04-01 23:46:23

标签: sql ms-access syntax-error isnull iif-function

我收到语法错误,我已多次更改,重新输入并尝试绘制地图。现在在我的头脑即将到来之后,出于绝望,我转向那些关注此事的人。

我可能会试图抓住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;

我提前感谢你。

1 个答案:

答案 0 :(得分: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)。