La verdad, me sorprendería que te funcionara, porque hay una muy mala aplicación del GROUP BY en casi todas las subconsultas. Y por otro lado hay cosas que sólo funcionarían en MySQL, pero no en Oracle ni SQL Server.
Código SQL:
Ver originalSELECT
NumCta, Nombre, SegNeg,
SUM (periodo_pasado) Periodo_Pasado,
SUM (Cargo) Cargo,
SUM (Abono) Abono,
(Periodo_Pasado+Cargo-Abono) SaldoFinal
FROM
(SELECT NumCta, Nombre, SegNeg,
SUM (periodo_pasado) AS Periodo_Pasado,
SUM (Cargo) AS Cargo,
SUM (Abono) AS Abono
FROM
(SELECT
t1.Fecha,t1.NumCta,t1.Nombre,t1.SegNeg,t1.Cargo,t1.Abono,
t1.Saldo_Inicial,t2.saldo_inicial periodo_pasado
FROM
(SELECT *
FROM mi_vista
WHERE Fecha BETWEEN '20120910' AND '20120930') t1
LEFT JOIN
(SELECT
NumCta,
SegNeg,
SUM(cargo) cargo ,
SUM(abono) abono ,
SUM(saldo_inicial) saldo_inicial
FROM mi_vista
WHERE Fecha BETWEEN '20121001' AND '20121007'
GROUP BY NumCta,Nombre,SegNeg) t2
ON (t1.NumCta=t2.NumCta AND t1.NumCta=t2.NumCta)
) completo
GROUP BY NumCta,Nombre,SegNeg) x
GROUP BY NumCta, Nombre, SegNeg, Periodo_Pasado, Cargo, Abono
En la consulta mayor no puedes poner Cargo y Abono en el GROUP BY porque están afectadas por funciones agregadas. No se sabe de donde surge "Nombre" en otras, y no puedes invocar en esa clausula columnas que no estén en el SELECT (salvo en MySQL).
Además de eso, me parece una consulta demasiado complicada. Ni siquiera estoy muy seguro de qué es lo que calcula.
¿Qué motor de base de datos estás usando?