Buenas. A ver si me orientáis un poco. Tengo este query contra dos tablas en FB 2.5:
Código SQL
[-]SELECT B.Familia, SUM(B.Bruto) Bruto, SUM(B.Bruto * B.Tipo_iva / 100) Iva, SUM(A.Importe) Caja
FROM Cajas A
LEFT JOIN Diario B ON A.Fecha = B.Fecha
WHERE EXTRACT(YEAR FROM A.Fecha) = 2021 AND A.Tipo IN ('EFECTIVO', 'OTROS')
GROUP BY Familia
ORDER BY Familia
y al ejecutarlo me da este resultado:
Si en es query elimino la tabla CAJAS y lo dejo así:
Código SQL
[-]SELECT Familia, SUM(Bruto) Bruto, SUM(Bruto * Tipo_iva / 100) Iva
FROM Diario
WHERE EXTRACT(YEAR FROM Fecha) = 2021
GROUP BY Familia
ORDER BY Familia
entonces me da este otro resultado:

que, por otra parte, es el resultado correcto.
Las tablas tienen esta estructura:
Tabla CAJAS
FECHA DATE NOT NULL
TIPO VARCHAR(15) NOT NULL
IMPORTE NUMERIC(12, 4)
Tabla DIARIO
FECHA DATE NOT NULL
FAMILIA VARCHAR(10) NOT NULL
BRUTO NUMERIC(12, 4)
TIPO_IVA SMALLINT
El archivo adjunto es un script con la definción de ambas tablas y los datos que actualmente hay en las mismas.