Definición de consulta SQL con tablas asociadas de access

SELECT Asientos.Número, Asientos.Fecha, Asientos.Referencia, [Asientos Movimientos].Renglón, [Asientos Movimientos].Número, [Asientos Movimientos].Código, Cuentas.Tipo, Cuentas.Nombre, [Asientos Movimientos].Importe,IIf([Importe]>0,[Importe],0) AS Debe

FROM Cuentas INNER JOIN (Asientos INNER JOIN [Asientos Movimientos] ON Asientos.Número = [Asientos Movimientos].Número) ON Cuentas.Código = [Asientos Movimientos].Código

ORDER BY [Asientos Movimientos].Código, Asientos.Fecha

Lo que necesito hacer ahora es agregar otro iif([Importe]<0,[Importe],0) As Haber, es decir, lo que quiero hacer es que los valores positivos estén en el campo Debe y los negativos en el campo Haber. Y necesito crear un último campo que se llame Saldo y tenga la resta Debe-Haber. ¿Es posible hacerlo?

Respuesta
1

Se puede plantear de otra forma:

.- Si se multiplica por cero el resultado será siempre cero, si se multiplica por la unidad no varia.

[Asientos Movimientos].Importe * ABS([Asientos Movimientos].Importe > 0) AS Debe
[Asientos Movimientos].Importe * ABS([Asientos Movimientos].Importe < 0) AS Haber

El saldo se supone que es una suma continua del campo importe, la función DSUM lo calcula, pero hay que condicionarla para que solo sume los asientos iguales o inferiores al asiento actual, pero se tendrá que ordenar por asiento (pueden aparecer presentaciones incoherentes si se ordena por fecha)

¡Gracias! 
Perfecto, lo voy a dejar así por el momento, transcribo por si a alguien le sirve.

SELECT Asientos.Número, Asientos.Fecha, Asientos.Referencia, [Asientos Movimientos].Renglón, [Asientos Movimientos].Número, [Asientos Movimientos].Código, Cuentas.Tipo, Cuentas.Nombre, [Asientos Movimientos].Importe, [Asientos Movimientos].Importe * ABS([Asientos Movimientos].Importe > 0) AS Debe, [Asientos Movimientos].Importe * ABS([Asientos Movimientos].Importe < 0) AS Haber

FROM Cuentas INNER JOIN (Asientos INNER JOIN [Asientos Movimientos] ON Asientos.Número = [Asientos Movimientos].Número) ON Cuentas.Código = [Asientos Movimientos].Código

ORDER BY [Asientos Movimientos].Código, Asientos.Fecha

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas