Me parece muy raro que no se pueda hacer cursores con COUNT(). Habéis probado con
COUNT(*) ?
drvedia1981, puedes hacer algo así:
Código COBOL:
EXEC SQL
END-EXEC.
EXEC SQL
DECLARE Registro CURSOR FOR
SELECT DISTINCT caja
FROM 'ventanilla'
where DATE( fecha ) = '2018-05-03'
END-EXEC.
EXEC SQL
OPEN Registro
END-EXEC.
PERFORM cargo
PERFORM UNTIL SQLSTATE = "02000"
SELECT COUNT(*)
INTO :WS-COUNT
FROM caja
WHERE ID_caja = :WS-ID-CAJA
PERFORM cargo
END-PERFORM
EXEC SQL
CLOSE Registro
END-EXEC
EXEC SQL
DISCONNECT 'BASE'
END-EXEC.