Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola a todos,
En un entorno funcional de Alquileres, tengo una primer tabla donde configuro las temporadas:
TEMPORADAS:
- FechaDesde
- FechaHasta
- Temporada
Otra con los alquileres:
ALQUILERES:
- NumAlquiler
- FechaInicialAlq
- FechaFinalAlq
Y otra que contiene, para cada NumAlquiler, tantos registros como días se obtienen de la diferencia entre FechaInicialAlq y FechaFinalAlq, es decir, un registro por cada día de alquiler.
FECHAS ALQUILER:
- NumAlquiler
- FechaAlq (dia de alquiler)
La pregunta es cómo relacionar u obtener la Temporada correspondiente a cada FechaAlq ó, en su defecto, obtener cuantos dias tiene cada NumAlquiler en cada Temporada. Tened en cuenta que un alquiler puede estar a caballo de dós ó más temporadas.
Saludos.
Hola,
Una forma sencilla de hacerlo seria con un gráfico tabla con dos dimensiones:
-NumAlquiler
-Temporada
Y como expresion COUNT(if(FechaAlq >= FechaDesde and FechaAlq <= FechaHasta, Temporada))
Espero que te sirva.
Hola,
Una forma sencilla de hacerlo seria con un gráfico tabla con dos dimensiones:
-NumAlquiler
-Temporada
Y como expresion COUNT(if(FechaAlq >= FechaDesde and FechaAlq <= FechaHasta, Temporada))
Espero que te sirva.
Hola Cristina, gracias por tu contestación. He probado la expresión que me indicas y los resultados son correctos.
Por si a alguien le interesa, yo había montado otra estructura, mucho más compleja, pero también con resultado satisfactorio:
1º) FECHAS ALQUILER LEFT JOIN ALQUILERES
2º) Había creado la tabla MOV_TEMPORADAS de la siguiente forma:
LOAD
Temporada,
DATE(FechaDesde + ITERNO() - 1) AS FechaAlq
RESIDENT Temporadas
WHILE (FechaDesde + ITERNO() - 1) <= FechaHasta;
De esta manera ya tenía la relación entre las tablas TEMPORADAS y FECHAS ALQUILER, a través del campo FechaAlq de MOV_TEMPORADAS.
Hola,
Para lo que pueda servir, puede merecer la pena (dependiendo del modelo de datos) convertir el If() de la expresión en un análisis de conjuntos. Con pocos cientos de registros, el rendimiento ya mejora. Si el número de registros son decenas de miles o más, la velocidad de cálculo del gráfico es mucho más rápida:
Count({< FechaAlq = {">=$(=Date(FechaDesde))<=$(=Date(FechaHasta))"} >} Temporada)
En el caso de que FechaAlq y FechaDesde/FechaHasta tengan distintos formatos puede ser necesario añadir alguna función de formato de fecha adicional.
Espero que sirva.
Miguel
Hola Miguel Angel,
He probado la expresión que me indicas pero no los valores que obtengo no son correctos, es más, muestra los mismos valores por temporada para cada alquiler. A qué crees que pueda deberse?
Gracias por tus comentarios.
Hola,
Posiblemente porque el análisis de conjuntos devuelve un conjunto nulo o no válido, de forma que lo ignora y devuelve el Count() como si no tuviera análisis de conjuntos. Podrías ser por los formatos de fecha, podría ser también porque la comparación debe realizarse fila a fila, en cuyo caso el análisis de conjuntos no es válido y se neceista un If(), aunque sea más lento.
Un saludo.
Miguel