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
