Hola a todos tengo la siguiente consulta lo que hace es que resta dos campos de una tabla y saca un saldo del resultado y asi sucecibamente el problema que tengo es que si la condicion tiene mas de 2 filas de resultado solo me repite la primera fila no se si alguien me pueda ayudar con respecto a eso se los agradesco de antemano
Código SQL:
Ver originalDECLARE @tbl_saldo TABLE(
Id INT NOT NULL,
saldo FLOAT
);
DELETE FROM @tbl_saldo
DECLARE @prueba FLOAT
DECLARE @debe FLOAT
DECLARE @haber FLOAT
DECLARE @saldo FLOAT
DECLARE @documentoId FLOAT
DECLARE @Id INT
SET @saldo=0
DECLARE probar CURSOR FOR
SELECT Finanzas.DetalleDocumento.Id,Finanzas.DetalleDocumento.Debe - Finanzas.DetalleDocumento.Haber
FROM Finanzas.DetalleDocumento INNER JOIN
Finanzas.Documento ON Finanzas.Documento.Id =Finanzas.DetalleDocumento.DocumentoId INNER JOIN
Finanzas.Aplicacion ON Finanzas.DetalleDocumento.AplicacionId=Finanzas.Aplicacion.Id INNER JOIN
Finanzas.Cuenta ON Finanzas.Aplicacion.CuentaId=Finanzas.Cuenta.Id INNER JOIN
Finanzas.Tercero ON Finanzas.Tercero.id=Finanzas.Documento.TerceroId
WHERE (Finanzas.Tercero.Id = 4365) AND (Finanzas.Documento.Contabilizado = 'True') AND (Finanzas.Cuenta.Id = 2045)
ORDER BY Finanzas.Documento.FechaDocumento ASC
OPEN probar
FETCH probar INTO @Id,@prueba
WHILE (@@FETCH_STATUS = 0)
BEGIN
-- Lectura de la siguiente fila de un cursor
FETCH probar INTO @Id,@prueba
SET @saldo= @prueba + @saldo
INSERT INTO @tbl_saldo SELECT @Id,@saldo
END
CLOSE probar
SELECT * FROM @tbl_saldo
DEALLOCATE probar
SELECT RTRIM(Finanzas.Tercero.Nombres) + ' ' + RTRIM(Finanzas.Tercero.Apellidos) AS NombreCompleto, Finanzas.Documento.Descripcion, Finanzas.Documento.FechaDocumento,
Finanzas.DetalleDocumento.Debe, Finanzas.DetalleDocumento.Haber, temp.saldo, Finanzas.DetalleDocumento.Id, temp.Id,Finanzas.Cuenta.DescripcionCuenta, Finanzas.Cuenta.Codigo
FROM Finanzas.Tercero INNER JOIN
Finanzas.Documento ON Finanzas.Tercero.Id = Finanzas.Documento.TerceroId AND Finanzas.Tercero.Id = Finanzas.Documento.TerceroId INNER JOIN
Finanzas.DetalleDocumento ON Finanzas.Documento.Id = Finanzas.DetalleDocumento.DocumentoId INNER JOIN
@tbl_saldo AS temp ON Finanzas.DetalleDocumento.Id = temp.Id INNER JOIN
Finanzas.Aplicacion ON Finanzas.DetalleDocumento.AplicacionId = Finanzas.Aplicacion.Id INNER JOIN
Finanzas.Cuenta ON Finanzas.Aplicacion.CuentaId = Finanzas.Cuenta.Id
WHERE (Finanzas.Tercero.Id = 4365) AND (Finanzas.Documento.Contabilizado = 'True') AND (Finanzas.Cuenta.Id = 2045)
ORDER BY Finanzas.Documento.FechaDocumento ASC
[/CODE]