Consulta Inmuebles/Contratos

Iniciado por e500, 14 Febrero 2019, 21:17 PM

0 Miembros y 1 Visitante están viendo este tema.

e500

Hola gente del foro, le comento mi siguiente cuestión para ver si alguien tiene alguna respuesta que me pueda ayudar a seguir con mi proyecto.

Tengo 3 Tablas:


PAGOS:
--------
id
idcliente
idinmueble
fdpaga (fechadepago)
fdvence
monto
paga
debe
aumento (boolean)

INMUEBLES;
-------------
id
nombre
direccion
piso
depto-of

CONTRATOS;
-------------
id
montoinicial
fechadealta
fechavence
porcentajedeaumento
tiempoaumento


Tengo algo así, sin especificar relaciones porque es justamente donde viene mi consulta. ¿Cómo puedo hacer una consulta que al ingresar un Pago, de un Inmueble me verifique si ese inmueble tiene el contrato vencido (fechavence) y a su ves que si no está vencido me haga el aumento del montoinicial sabiendo el tiempodeaumento (bimestral/semestral/anual por 2, 6 o 12 meses) teniendo en cuenta el porcentajedeaumento sombre el montoinicial ?

• Aclaro que no generé campos que relacionen las tablas, solo para ver que ideas surgen.

Gracias por su ayuda.

MCKSys Argentina

Hola!

Creo que te falta establecer una relación entre el Inmueble y el contrato.

La table inmuebles debería tener un campo más, que haga referencia al id del contrato. O bien, agregarlo en la tabla de pagos. Lo que creas más conveniente.

Con eso ya puedes establecer una relación completa entre las 3 tablas y solicionar tu consulta.

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


e500

Cita de: MCKSys Argentina en 14 Febrero 2019, 23:41 PM
Hola!

Creo que te falta establecer una relación entre el Inmueble y el contrato.

La table inmuebles debería tener un campo más, que haga referencia al id del contrato. O bien, agregarlo en la tabla de pagos. Lo que creas más conveniente.

Con eso ya puedes establecer una relación completa entre las 3 tablas y solicionar tu consulta.

Saludos!

Gracias por tu pronta respuesta MCKSys Argentina... pero aclaré que no puse las relaciones justamente para ver alguna idea o sugerencia de relación.


MCKSys Argentina

Cita de: e500 en 15 Febrero 2019, 00:58 AM
Gracias por tu pronta respuesta MCKSys Argentina... pero aclaré que no puse las relaciones justamente para ver alguna idea o sugerencia de relación.

Bueno, ya tienes una sugerencia...  ;D

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


e500

Cita de: MCKSys Argentina en 15 Febrero 2019, 01:21 AM
Bueno, ya tienes una sugerencia...  ;D

Saludos!

Ya te dí gracias, espero alguna consulta armada en modo ejemplo como hacen los usuarios normalmente en foros, para que me ayude a salir adelante con mi proyecto.

MCKSys Argentina

Bueno, no soy experto en SQL, pero para MySQL creo que podrías usar:

Asumiendo que tienes un campo idcontrato en INMUEBLES:

Código (sql) [Seleccionar]
UPDATE CONTRATOS AS c
INNER JOIN INMUEBLES AS i ON c.id = i.idcontrato
SET montoinicial = if(CURDATE() > DATE(fechavence), montoinicial, (montoinicial * porcentajedeaumento) / 100)
-- aqui puede ir una clausula where


Ahora ya tienes una...

Cita de: e500 en 15 Febrero 2019, 09:10 AM
consulta armada en modo ejemplo como hacen los usuarios normalmente en foros...

No entiendo el uso del campo tiempodeaumento, por eso no lo incluí en la consulta. Pero ya tienes una idea...

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


e500

#6
Cita de: MCKSys Argentina en 15 Febrero 2019, 13:27 PM
Bueno, no soy experto en SQL, pero para MySQL creo que podrías usar:

Asumiendo que tienes un campo idcontrato en INMUEBLES:

Código (sql) [Seleccionar]
UPDATE CONTRATOS AS c
INNER JOIN INMUEBLES AS i ON c.id = i.idcontrato
SET montoinicial = if(CURDATE() > DATE(fechavence), montoinicial, (montoinicial * porcentajedeaumento) / 100)
-- aqui puede ir una clausula where


Ahora ya tienes una...

No entiendo el uso del campo tiempodeaumento, por eso no lo incluí en la consulta. Pero ya tienes una idea...

Saludos!

Aaa pero me alegraste el día! gracias por tu ayuda!

El campo tiempoaumento es para saber si el aumento del alquiler es de 2 6 o 12 meses en caso de que sea por ejemplo de 6 meses y pasados los 6 meses del valor que tiene el campo fechadealta hacemos un aumento del montoinicial por el porcentajedeaumento. Ahora te vuelvo a molestar, si el contrato es de 3 años y ya vamos por el segundo aumento (a los 12 meses) que sería el mismo porcentajeaumento pero sobre el montoinicial ya aumentado, como lograríamos esa consulta, ahí estoy trabado. Y como agregado final a mi consulta que sería lo primero que tendríamos que comprobar, es que la fechadealta no supere a la fechadevence.

Salu2 desde Argentina tmb!  :-*