Informix "A syntax error has occurred." 使用子查询时

Informix "A syntax error has occurred." when using subquery

以下两个查询有效:

SELECT SUM(actdtmahi+actdtmahd+actdtmahv) AS saldo
FROM actdt 
WHERE actdtcage=116437 AND actdtmrcb=0 AND actdtccic=55204

SELECT FIRST 1 acbccccic FROM acbcc 
WhERE (acbccscic=4 OR acbccscic=5) AND 
    acbccccic IN (SELECT acbcaccic FROM acbca WHERE acbcacage=116437)
ORDER BY acbccccic DESC

但是,如果我尝试在一个查询中加入它们,我会得到 "A syntax error has occurred"

SELECT SUM(actdtmahi+actdtmahd+actdtmahv) AS saldo
FROM actdt 
WHERE actdtcage=116437 AND actdtmrcb=0 AND 
    actdtccic IN (SELECT FIRST 1 acbccccic FROM acbcc 
        WHERE (acbccscic=4 OR acbccscic=5) AND 
        acbccccic IN (SELECT acbcaccic FROM acbca WHERE acbcacage=116437)
        ORDER BY acbccccic DESC)

为什么?

我认为 Informix 不允许在子查询中使用 FIRST。请尝试 MAX()

actdtccic IN (SELECT MAX(acbccccic)
              FROM acbcc 
              WHERE acbccscic IN (4, 5) AND 
                    acbccccic IN (SELECT acbcaccic FROM acbca WHERE acbcacage=116437)
             )

此外,您可以使用 = 而不是 IN