SELECT * FROM ( ( SELECT pe.puc_empresa, pe.codigo, pe.cuenta, COALESCE(SUM(tsc.debito_inicial), 0) - COALESCE(SUM(tsc.credito_inicial), 0) AS saldo_inicial, COALESCE(SUM(tsc.debito_movimiento), 0) - COALESCE(SUM(tsc.debito_inicial), 0) AS debito_movimiento, COALESCE(SUM(tsc.credito_movimiento), 0) - COALESCE(SUM(tsc.credito_inicial), 0) AS credito_movimiento, COALESCE(SUM(tsc.debito_movimiento), 0) - COALESCE(SUM(tsc.credito_movimiento), 0) AS saldo_final, '' AS tercero_nombre FROM puc_empresa pe LEFT JOIN ( SELECT codigo, COALESCE(SUM(debito), 0) AS debito_inicial, COALESCE(SUM(credito), 0) AS credito_inicial, 0 AS debito_movimiento, 0 AS credito_movimiento FROM t_saldos_contables WHERE empresa IN ('1005006', '1006001') AND anio = '2024' AND mes = '09' GROUP BY codigo UNION ALL SELECT puc.codigo, COALESCE(SUM(rsca.valor_debito), 0) AS debito_inicial, COALESCE(SUM(rsca.valor_credito), 0) AS credito_inicial, 0 AS debito_movimiento, 0 AS credito_movimiento FROM rl_soporte_contable_asiento rsca INNER JOIN puc_empresa puc ON (rsca.puc_empresa = puc.puc_empresa AND puc.omitir = 0 ) INNER JOIN rl_soporte_contable_producto rscp ON (rsca.rl_soporte_contable_producto = rscp.rl_soporte_contable_producto) INNER JOIN soporte_contable sc ON (rscp.soporte_contable = sc.soporte_contable AND sc.empresa IN ('1005006', '1006001') ) WHERE sc.empresa IS NOT NULL AND sc.tipo_documento_contable <> 15 AND sc.empresa = puc.empresa AND (('2024-10-01' <= rscp.vence AND rscp.vence <= '2024-09-30') AND (sc.tipo_documento_contable <> 38)) GROUP BY puc.codigo UNION ALL SELECT codigo, 0 AS debito_inicial, 0 AS credito_inicial, COALESCE(SUM(debito), 0) AS debito_movimiento, COALESCE(SUM(credito), 0) AS credito_movimiento FROM t_saldos_contables WHERE empresa IN ('1005006', '1006001') AND anio = '2024' AND mes = '11' GROUP BY codigo UNION ALL SELECT puc.codigo, 0 AS debito_inicial, 0 AS credito_inicial, COALESCE(SUM(rsca.valor_debito), 0) AS debito_movimiento, COALESCE(SUM(rsca.valor_credito), 0) AS credito_movimiento FROM rl_soporte_contable_asiento rsca INNER JOIN puc_empresa puc ON (rsca.puc_empresa = puc.puc_empresa AND puc.omitir = 0 ) INNER JOIN rl_soporte_contable_producto rscp ON (rsca.rl_soporte_contable_producto = rscp.rl_soporte_contable_producto) INNER JOIN soporte_contable sc ON (rscp.soporte_contable = sc.soporte_contable AND sc.empresa IN ('1005006', '1006001') ) WHERE sc.empresa IS NOT NULL AND sc.tipo_documento_contable <> 15 AND sc.empresa = puc.empresa AND (('2024-12-01' <= rscp.vence AND rscp.vence <= '2024-12-31') AND (sc.tipo_documento_contable <> 38)) GROUP BY puc.codigo ) tsc ON (tsc.codigo >= pe.codigo AND tsc.codigo < CAST((CASE (CAST(pe.codigo AS NUMERIC) + 1) WHEN 10 THEN 9999 WHEN 100 THEN 9999 ELSE (CAST(pe.codigo AS NUMERIC) + 1) END) AS VARCHAR(30))) WHERE pe.empresa = 1006001 AND pe.codigo NOT LIKE '%-%' AND pe.codigo >= '1' AND pe.codigo <= '99152208' AND LENGTH(pe.codigo) <= 6 AND pe.omitir = 0 AND (NOT (-0.01 < tsc.debito_inicial AND tsc.debito_inicial < 0.01) OR NOT (-0.01 < tsc.credito_inicial AND tsc.credito_inicial < 0.01) OR NOT (-0.01 < tsc.debito_movimiento AND tsc.debito_movimiento < 0.01) OR NOT (-0.01 < tsc.credito_movimiento AND tsc.credito_movimiento < 0.01)) GROUP BY pe.puc_empresa ORDER BY pe.codigo ASC ) UNION ALL ( SELECT 0 AS puc_empresa, '9999999999' AS codigo, '' AS cuenta, 0 AS saldo_inicial, 0 AS debito_movimiento, 0 AS credito_movimiento, 0 AS saldo_final, '' AS tercero_nombre ) ) d WHERE d.puc_empresa = 0 OR LENGTH(d.codigo) = 1 OR (NOT (-0.01 < d.saldo_inicial AND d.saldo_inicial < 0.01) OR NOT (-0.01 < d.debito_movimiento AND d.debito_movimiento < 0.01) OR NOT (-0.01 < d.credito_movimiento AND d.credito_movimiento < 0.01)) ORDER BY d.codigo;