Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Evitar dato null

Estas en el tema de Evitar dato null en el foro de Mysql en Foros del Web. Tengo un SP @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original BEGIN     #Routine body goes here... select a.fecha_dia , c.cuenta_id , b.mov_id , B.MOV_SALDO_REAL   ...
  #1 (permalink)  
Antiguo 24/04/2015, 16:39
Avatar de Fabu_dina  
Fecha de Ingreso: enero-2004
Mensajes: 425
Antigüedad: 20 años, 3 meses
Puntos: 1
Evitar dato null

Tengo un SP

Código MySQL:
Ver original
  1.     #Routine body goes here...
  2. select a.fecha_dia, c.cuenta_id, b.mov_id,B.MOV_SALDO_REAL
  3.       from fecha_reporte a
  4.       join cuenta c
  5.       left join
  6.        (select b.mov_fecha1, b.mov_cuenta,b.mov_saldo_real,max(b.mov_id) mov_id
  7.           from movimientos_bancarios b
  8.  
  9.         where date(b.mov_fecha1) between '2015/4/18' and '2015/4/22'
  10.         group by 1,2) b
  11.         on b.mov_fecha1 = a.fecha_dia
  12.         and b.mov_cuenta = c.cuenta_id
  13.       where a.fecha_dia between '2015/04/18' and '2015/4/22' and c.cuenta_activa = 1;
  14.  

el Cual me regresa los saldos en cuentas bancarias pero hay dias en que no hay movimientos quisiera me regresara el ultimo saldo que tiene en esos dias

es decir mi resultado seria algo asi
fecha cta ide SALDO
2015-04-18 00:00:00 1 125649 25000.0000
2015-04-19 00:00:00 1 null null
2015-04-20 00:00:00 1 null null
2015-04-21 00:00:00 1 null null
2015-04-22 00:00:00 1 null null
2015-04-18 00:00:00 3 null null
2015-04-19 00:00:00 3 null null
2015-04-20 00:00:00 3 155649 25000.0000
2015-04-21 00:00:00 3 null null
2015-04-22 00:00:00 3 157041 32000.0000

En el caso del dia 21 es null tengo que poner el saldo del dia 20

el ultimo saldo lo encuentro con este query


Código MySQL:
Ver original
  1. SELECT m.mov_fecha1,m.mov_saldo_real from movimientos_bancarios m
  2. where m.mov_cuenta = 3 and mov_fecha1<'2015/04/22' and mov_saldo_real>0
  3. order by mov_id desc limit 0,1


Que tendria que hacer, no he podido encontrar la solucion
  #2 (permalink)  
Antiguo 26/04/2015, 12:47
Avatar de Fabu_dina  
Fecha de Ingreso: enero-2004
Mensajes: 425
Antigüedad: 20 años, 3 meses
Puntos: 1
Respuesta: Evitar dato null

em firebird tengo algo similar y me funciona pero en mysql cambia


Código MySQL:
Ver original
  1. SET TERM ^ ;
  2.  
  3. CREATE OR ALTER PROCEDURE USR_fechas_folios
  4.     fecha date,
  5.     folio_transacc integer)
  6.    for select a.fecha, b.folio_transacc from fechas a left join
  7.        (select b.fecha_transacc, max(b.folio_transacc) folio_transacc from transacciones b
  8.         where b.fecha_transacc between '1.4.15' and '22.4.15'
  9.         group by 1) b
  10.         on b.fecha_transacc = a.fecha
  11.         into :fecha, :folio_transacc
  12.    do
  13.      begin
  14.         if (folio_transacc is null) then
  15.            SELECT max(b.folio_transacc) from transacciones b
  16.             where b.fecha_transacc < :fecha
  17.              into :folio_transacc;
  18.            if (folio_transacc is null) then
  19.               folio_transacc = 0;
  20.       suspend;
  21.       end
  22.  
  23. SET TERM ; ^
  24.  
  25. GRANT ALL ON fechas TO PROCEDURE USR_fechas_folios;
  26.  
  27. GRANT ALL ON transacciones TO PROCEDURE USR_fechas_folios;
  28.  
  29. GRANT EXECUTE ON PROCEDURE USR_fechas_folios TO CONSULTAS;
  30. GRANT EXECUTE ON PROCEDURE USR_fechas_folios TO SYSDBA;

Etiquetas: dato, fecha, null, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:30.