Regresar   Foros del Web > Programación para sitios web > Bases de Datos

El registro es Gratis en Foros del Web
Respuesta
 
Herramientas Buscar en Tema Desplegado
Antiguo 07/05/08, 15:27:15   #1 (permalink)
xcars no ha recibido karma de otros usuarios
 
Registrado: may 2005
Mensajes: 484
xcars is offline  
Duda existencial en diseño de base

pues tengo un diseño que no me termina de convencer, ya que a la hora de reportes o algunas consultas se complica demasiado.
El diseno basico es el siguiente:

Prestamos: la cual contiene los registros de prestamos realizados por personas, y que contiene toda la informacion general de estos, nombre, domicilio, # de prestamo, etc

Categoria el Prestamo: el cual lleva una lista de las categorias en que puede estar un cliente, ej: Localizado, Ilocalizado

Subcategoria del prestamo: una lista de las subcategorias que puede tener cada categoria, ej:
Categoria subcategoria
Localizado Telefonicamente
Localizado En casa
Ilocalizado En trabajo

etc etc

ahora bien, a estas personas se les llama por telefono para realizar diferentes gestiones, cobro administrativo, cobro judicial, actualizacion de datos, etc

por lo tanto se relaciona con una tabla llamada GESTIONES, la cual es una bitacora de todas las llamadas telefonicas hechas a los clientes, esto significa que un prestamo puede tener muuuuchas gestiones, ahora bien cada gestion tiene una ACCION y una REACCION o resultado, por lo cual hay 2 tablas mas, una para las acciones (llamada por telefono, envio de fax, envio de email, envio de carta, etc) y las REACCIONES (cliente no reconoce deuda, cliente no estaba, cliente cambio domicilio etc)

ahora bien, por lo general yo siempre debo mostrar a parte de todas la informacion general, la informacion de la ultima gestion, pero la relacion de PRESTAMOS a GESTIONES solo es por el No. de prestamo por lo cual, un INNER JOIN siempre me devolvera n filas segun coincidencias en GESTIONES pero yo solo quiero coincidencias con la ultima gestion realizada, este es el primer problema, que aunque ya lo resolvi no me parece muy correcta la forma.

El otro problema es que quiero sacar un reporte que me liste todos los prestamos que tienen como resultado de la ultima gestion una cierta reaccion, pero por ejemplo yo podria llamarle 3 veces a un cliente y obtener la misma reaccion, pero a mi me interesa la ultima, o peor aun, la primera llamada no obtuve resultados, la segunda llamada tuve de reaccion_id 5 (por eje.) pero ya en la tercera llamada tuve como reaccion_id=7 entonces, este caso no deberia salir en el reporte, ya que me interesa el resultado de la ultima gestion, y es aqui, donde ya el diseño siento que topa.

Que me podrian sugerir? si necesitan el diseno en si, pues con gusto puedo ver como lo pongo, aqui les dejo el codigo de como voy hasta ahorita, pero aun asi no me resuelve nada.

Código:
select 
a.prestamo_id,
a.prestamo_deudor,
a.prestamo_direccion,
d.categoria_nombre,
e.subcategoria_nombre,
a.prestamo_notas,
(select top 1 c.resultado_nombre
from gestiones b inner join resultados_Gestiones c
on (b.resultado_id=c.resultado_id)
where a.prestamo_id=b.prestamo_id and b.resultado_id=6
order by gestion_id desc) as resultado_gestion
FROM 
prestamos a
INNER JOIN gestiones b ON (a.prestamo_id=b.prestamo_id and b.resultado_id=6)
INNER JOIN categorias d ON (a.categoria_id=d.categoria_id)
INNER JOIN subcategorias e ON (a.categoria_id=e.categoria_id 
AND a.subcategoria_id=e.subcategoria_id)
este me repite una fila por cada gestion, aunque la fila esta bien, me repite filas lo que significa que algo se me ha quedado fuera, espero y me puedan ayudar con el problema.
Saludos
__________________
QUE NADIE ME HABLE QUE NO SEA SUBVERSIVO
  Responder Con Cita
Respuesta


Califica este Tema - Duda existencial en diseño de base.

Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado Califica este Tema
Califica este Tema:

Reglas del foro
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está activado
Las caritas están activado
Código [IMG] está activado
Código HTML está desactivado


Todas las horas son GMT -6. La hora es 12:13:43.

Message Board Statistics

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96