Avance 5

 Avances: 

  • Se agregó el código necesario para mostrar en la página web el funcionamiento de la consulta #2 del administrador
  • Se hicieron pruebas para comprabar que el SP funcionaba correctamente.
  • Se terminó el SP para la consulta del administrador, ya que hacía falta determinar el promedio de operaciones por mes.
  • Se arregló el SP para la consulta 2 debido a que se estaba determinando de manera erronea si la primera condición se cumplía. Además de que se encontró una manera mucho más eficiente de determinar si la segunda condición se cumplía para la cuenta.
  • Se hizo la consulta 1 del administrador.
  • Se agregó el código en la capa lógica para mostrar el funcionamiento de la primera consulta.
  • Se hizo la presentación en power point del análisis de los resultado además de los gráficos y el avance del proyecto.

Horas Trabajadas: 8 h

Problemas encontrados y como fueron resueltos: 

  • El principal problema el día de hoy fue que para determinar si una cuenta había excedido la cantidad de operaciones atm que había hecho se estaban calculando todas las operaciones hechas del tipo de movimiento #10. Primero, esto tenía un error porque se estaban calculando todas las operaciones que había hecho desde el inicio de la tabla y además no se sabía que el tipo de movimiento diez indicaba que esta cuenta tenía una multa por exceso de operaciones. Entonces para solucionar esto se decidio obtener el monto de la primera fila de la tabla de movimiento que tuviera el tipo de movimiento #10 y que coincidiera con el número de cuenta actual, esto se guardó en una variable. Si la variable era nula entonces esto quería decir que no hubo ninguna multa por exceso de operaciones en atm y la primera condición no se cumplía, de lo contrario se indicaba que si se cumplió está condición.
  • Mientras se arreglaba el problema de la primera condición se encontró una manera mucho más eficiente de determinar si la cantidad de operaciones hechas en los últimos N días era mayor a 5. Para esto se utilizó el ORDER BY el cual permitió obtener las fechas de los últimos n días con mucha más facilidad. Además se cambió la lógica totalmente para obtener la cantidad de operaciones, inicialmente se hacía un ciclo que se hacía N veces y se iba cambiando a la fila anterior por cada iteración. Sin embargo esto representaba un problema ya que las últimas N filas no necesariamente son los últimos N días. Por lo que, se cambió la lógica de manera que se contará la cantidad de filas de la tabla formada por los movimientos de tipo 6 que fueran mayores  o iguales a la fecha de inicio (fecha en la que se iba a detener de contar). Este valor representaría entonces la cantidad de operaciones atm hechas en total sin representar problemas.
  • Column "Movimiento.Id" is invalid in the ORDER BY clause because it is not contained in either an aggregate function or the GROUP BY clause. Este problema surgió debido a que la columna no estaba incluida en las que se seleccionaron, se solucionó buscando información en internet (referencia 2)

Temas Adicionales Investigados:
  • IS NULL en sql, se utilizó para determinar si hubo o no una multa por exceso de operaciones (Referencia 1).
  • Se averiguó si el número máximo de retiros era por día o por mes (Referencia 3)
  • Se investigó como comparar dos variables de tipo date (Referencia 4) para la segunda condicion de la consulta.
  • Se buscó información sobre count () en sql (Referencia 5) para determinar la cantidad de filas de una tabla.
  • Como comparar fechas iguales o mayores a, esto se buscó para determinar la cantidad de operaciones en atm que se habían hecho. (Referencia 6 y 7)
Referencias Bibliograficas:
  1. https://docs.microsoft.com/en-us/sql/t-sql/queries/is-null-transact-sql?view=sql-server-ver15
  2. https://stackoverflow.com/questions/33580104/invalid-in-the-order-by-clause-because-it-is-not-contained-in-either-an-aggregat
  3. https://www.bncr.fi.cr/_cache_edb6/content/1609240000073156.pdf
  4. https://www.geeksforgeeks.org/sql-query-to-compare-two-dates/#:~:text=This%20can%20be%20easily%20done,using%20the%20IF%2DELSE%20statement.
  5. https://www.w3schools.com/sql/sql_count_avg_sum.asp
  6. https://stackoverflow.com/questions/5182275/datetime-equal-or-greater-than-today-in-mysql
  7. https://www.codegrepper.com/code-examples/sql/sql+where+date+greater+than
Código:

+ Código en capa lógica para la consulta número dos del administrador: 






















+ SP arreglado de la consulta #2








Comments

Popular posts from this blog

Avance 2

Resumen Proyecto 2