Hola, lo que se me ocurre rapidamente para solucionar el problema desde el
lado del sql es que uses la funcion NVL(debito,0) y NVL(credito,0), con lo
cual el sql ya te va a devolver lo que queres...

salute!


El 22 de febrero de 2010 16:53, Nestor Rodriguez
<[email protected]>escribió:

> Hola gente, como andan, aqui peleandome con el array, estoy tratando de
> hacer un sistema de cuentas corrientes y estoy con eso del DEBITO Y EL
> CREDITO, así que necesito mostrar el ESTADO DE CUENTAS de un cliente, por lo
> tanto en el CONTROLADOR escribo esto:
>
> @clientes_movimientos = ClienteMovimiento.find_by_sql("Select
> clientes_movimientos.* " +
>                    "from clientes_movimientos, solicitudes, clientes " +
>                    "where clientes_movimientos.solicitud_id =
> solicitudes.id and " +
>                    " solicitudes.cliente_id = clientes.id and " +
>                    " clientes.id = #{params[:id]}")
> AQUÍ NO ESTA EL PROBLEMA, el problema es que en el array que me genera,
> vienen dos campos, DEBITO y CREDITO, que quiero sumarlos (cada uno un su
> columna) para mostrar los totales algo así como:
>
> fec mov         Concepto        Debito          Credito         Fec
> vencimiento         Num cuota Observacion
> 22/02/2010      Cuota   300,000                 02/02/2010      1/4
> debito automatico
> 22/02/2010      Cuota   200,000                 02/04/2010      2/4
> debito automatico
> 22/02/2010      Cuota   200,000                 02/05/2010      3/4
> debito automatico
> 22/02/2010      Cuota   200,000                 02/06/2010      4/4
> debito automatico
> TOTAL                                  1,000,000             0
>
> Lo que pasa es que el campo CREDITO, como no se le cargo nada tiene valores
> nulos, ahora bien mi pregunta es la siguiente:
> Como le digo a un bloque, que si es nulo el campo, lo tome como 0 (cero).
> Algo así como
>
> @clientes_movimientos.sum {|cm| ifnull(cm.debito,0)}
> @clientes_movimientos.sum {|cm| ifnull(cm.credito,0)}
>
> Obviamente la funcion ifnull no es de ruby que yo sepa. Pero cuando le
> coloco de la forma que aprendí es decir así:
> @clientes_movimientos.sum  {|cm| cm.debito}
> @clientes_movimientos.sum {|cm| cm.credito}
>
> Me lanza un error ya que cm.credito es nulo y no lo puede sumar.
>
> Alguien sabe una función que transforme un valor nulo aquí en por ejemplo 0
> (cero).
>
> Desde ya gracias...
>
> Néstor R.
>
>
>
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>



-- 
Pablo Marrero
Tel: 099 927 566
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a