SQL - Ayuda con consulta SQL URGENTE

 
Vista:
sin imagen de perfil

Ayuda con consulta SQL URGENTE

Publicado por SQL (3 intervenciones) el 19/06/2013 18:14:48
Saludos foro.

Tengo una base de datos con las siguientes tablas>

1. Prestamo
1.1 Suc_Codigo
1.2 Pre_Cod
1.3 Pre_FecCan
1.4 Pre_EntFec
1.5 Prod_Cod

2. CamCateg
2.1 Suc_Codigo
2.2 Pre_Codigo
2.3 Cat_Fecha
2.4 Cat_Actual

3. Usuari
3.1 Usu_Cod
3.2 Usu_Nombre


Cada una tiene mas campos pero estos son los que me interesan.
Cada prestamo tiene una categoria asignada dependiendo si el cliente (Usuari) se atrase o no con los prestamos, las categorias van de 1 a 5 siendo uno la mejor y 5 la peor (por decirlo asi). la cuestion con el sistema es que cuando una persona refinancia un prestamo realiza un procedimiento interno donde lo que hace es cancelar el prestamo que tiene, abrir uno nuevo para el mismo cliente con los nuevos calculos del refinanciamiento del mismo, pero tiene un problema, que cuando crea el nuevo prestamo no mantiene la categoria del que cancela anteriormente (que deberia hacerlo), explico mejor, suponiendo que juan tiene un prestamo por $1000 con categoria 3, el hace el refinanciamiento y el sistema deberia crear el nuevo prestamo con saldo $1000 y sus nuevas cuotas y en la categoria colocar 3, pero no, el sistema lo crea con categoria 1, como si fuera un prestamo nuevo.

lo que necesito hacer es lo siguiente:


1. En prestamos filtrar para todos los vigente (los vigentes en el sistema tienen fecha menor a 01/01/2005 o con fecha null) con Prod_Cod 14, 15 y 16
2. Guardar el Usu_Cod y la posicion del registro en la tabla
3. En prestamos filtrar para el cliente solo prestamos cancelados (los cancelados son con fecha mayor a 01/01/2005
4. Ordenar de mayor a menor por numero de prestamo y tomar el mayor, esto con los cancelados
5. Buscar el prestamo en CamCateg ordenado por fecha de mas reciente a mas antigua
6. almacenar el numero de prestamo y la categoria mas reciente
7. Regresar a Prestamo al numero de prestamo almacenado anteriormente y saltar al siguiente registro...


Resumido..
Necesito ver todos los prestamos vigentes pero con la categoria del ultimo refinanciamiento, que es la que deberia tener asignada.

Desde ya gracias por su ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con consulta SQL URGENTE

Publicado por Saul (6 intervenciones) el 19/06/2013 18:24:56
hola SQL ..

Se entiende lo que necesitas, pero para poder tomar idea de que es lo que necesitas filtrar o hacer en tu consulta seria bueno que pusieras, datos..

para tomar idea que es realmente tu idea.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda con consulta SQL URGENTE

Publicado por SQL (3 intervenciones) el 19/06/2013 19:03:57
Aqui estan unas imagenes

https://dl.dropboxusercontent.com/u/79693583/Imagenes/Categorias.PNG
https://dl.dropboxusercontent.com/u/79693583/Imagenes/Prestamos%20Vigentes.PNG
https://dl.dropboxusercontent.com/u/79693583/Imagenes/Usuari.PNG
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda con consulta SQL URGENTE

Publicado por SQL (3 intervenciones) el 25/06/2013 19:26:44
Tengo estos dos query hasta el momento


/*Prestamos Vigentes*/


SELECT PRESTAMO.Suc_codigo, PRESTAMO.Pre_codigo, PRESTAMO.Prod_codig, PRESTAMO.Pre_entfec, PRESTAMO.Pre_FecCan, CamCateg.Cat_Actual,
Usuari.Usu_codigo, Usuari.Usu_Nombre, CamCateg.Cat_Fecha
FROM PRESTAMO INNER JOIN
CamCateg ON PRESTAMO.Suc_codigo = CamCateg.Suc_codigo AND PRESTAMO.Pre_codigo = CamCateg.Pre_codigo INNER JOIN
Usuari ON PRESTAMO.Usu_codigo = Usuari.Usu_codigo
WHERE (PRESTAMO.Prod_codig >= 14) AND (PRESTAMO.Prod_codig <= 16) AND (PRESTAMO.Pre_entfec >= CONVERT(DATETIME, '2013-01-01 00:00:00', 102))
AND (PRESTAMO.Pre_entfec <= CONVERT(DATETIME, '2013-05-31 00:00:00', 102)) AND (PRESTAMO.Pre_FecCan < CONVERT(DATETIME,
'2005-01-01 00:00:00', 102) OR
PRESTAMO.Pre_FecCan IS NULL)
ORDER BY PRESTAMO.Suc_codigo, PRESTAMO.Pre_codigo, PRESTAMO.Prod_codig, PRESTAMO.Pre_entfec, PRESTAMO.Pre_FecCan, CamCateg.Cat_Actual,
Usuari.Usu_codigo


/*Prestamos Refinanciados*/

SELECT PRESTAMO.Suc_codigo, PRESTAMO.Pre_codigo, PRESTAMO.Prod_codig, PRESTAMO.Pre_entfec, PRESTAMO.Pre_FecCan, CamCateg.Cat_Actual,
Usuari.Usu_codigo, Usuari.Usu_Nombre, CamCateg.Cat_Fecha

FROM PRESTAMO INNER JOIN
Usuari ON PRESTAMO.Usu_codigo = Usuari.Usu_codigo INNER JOIN
CamCateg ON PRESTAMO.Suc_codigo = CamCateg.Suc_codigo AND PRESTAMO.Pre_codigo = CamCateg.Pre_codigo
WHERE PRESTAMO.Pre_FecCan > 2005-01-01
ORDER BY PRESTAMO.Suc_codigo, PRESTAMO.Pre_codigo, CamCateg.Cat_Fecha, Usuari.Usu_codigo




Necesito un tercero donde compare los datos que necesito
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar