小编典典

Access DB上的SQL ISNULL()参数数量错误

sql

我在Access DB的VB应用程序中有此查询:

  SELECT DISTINCT Specialization, MAX(a.faultZone) AS faultZone, ISNULL(a.faultCount, 0) AS NoOfFaults  FROM Technicians AS t 
    LEFT JOIN 
             ( 
            SELECT DISTINCT Faults.[Type] AS faultType, MAX(Faults.[Zone]) AS faultZone, COUNT(Faults.[Type]) AS faultCount 
            FROM Faults "
            WHERE Faults.[Zone] = 8 " ' this value will be from variable
            GROUP BY Faults.[Type] "
            ) AS a 
    ON (t.Specialization = a.faultType) 
    WHERE t.specialization <> 'None' "
    GROUP BY a.faultCount, t.Specialization

它给出了我无法解决的以下问题…

“查询表达式’ISNULL(a.faultCount,0’)中的函数使用的参数数量错误。”

我要实现的只是将值设置NoOFFaults为零,这意味着在特定区域中没有故障。

谢谢你


阅读 147

收藏
2021-04-22

共1个答案

小编典典

我想补充我的两分钱,而我喜欢NZ()的简单的语法,如果你寻求无故障性能,既ISNULL()和新西兰()应该有利于为NULL来避免:
IIF(a.faultCount Is Null, 0, a.faultCount)

请参阅此处的出色说明:http :
//allenbrowne.com/QueryPerfIssue.html

另外,如果您的表位于SQL Server或Oracle中,则使用Nz()将强制在本地执行更多查询,从而对性能产生巨大影响。

2021-04-22