![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#7
|
||||
|
||||
|
Cita:
Código:
+---------+----------+-------+ | cod_cta | tipo_mov | monto | +---------+----------+-------+ | 2 | D | 30 | +---------+----------+-------+ | 3 | D | 40 | +---------+----------+-------+ | 1 | C | 50 | +---------+----------+-------+ | 2 | C | 10 | +---------+----------+-------+ | 2 | C | 20 | +---------+----------+-------+ | 3 | D | 10 | +---------+----------+-------+ | 1 | C | 50 | +---------+----------+-------+ | 1 | D | 20 | +---------+----------+-------+
devolverá null para CUENTA.CODIGO = 3. ---------------------- Estuve investigando un poco. En MySql puede usarse la función if():
para regresar una tabla con crédito, débito y balance como requiere vpepen Sin embargo no tenia ni idea de si Interbase disponía de una función similar. Lo más cercano que tenía a la mano era FireBird en donde logré mi primera consulta SQL en FireBird:
que funciona igual que la de MySql. Busqué en Internet a ver si Interbase tenía algo semejante pero me encontré enlaces que claramente decían que no existía el case aunque ignoro si en las últimas versiones ya existe. Finalmente me metí con los procedimientos almacenados y obtuve mi primer procedimiento almacenado:
que genera la tabla (con los datos anteriores): Código:
| codigo | credito | debito | balance | +--------+---------+--------+---------+ | 1 | 100 | 20 | 80 | +--------+---------+--------+---------+ | 2 | 30 | 30 | 0 | +--------+---------+--------+---------+ | 3 | 0 | 50 | -50 | +--------+---------+--------+---------+ De hecho el procedimiento generará registros (con ceros en lugar de null) incluso para cuentas que no tengan ningún movimiento (ni crédito ni débito) El procedmiento podría usarse así:
En fin, como son mis primeros pasos en FireBird y procedimientos almacenados no me sorprendería que hubiera formas mucho más elegantes y sencillas, pero mientras tanto quizá le sirva a vpepen y a mi me sirve de ejercicio .Supongo que la sintaxis de los procedimientos almacenados no diferirá gran cosa para Interbase. // Saludos |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|