SQL Server - Como filtrar por criterio de variación entre fechas en SQL Server

 
Vista:
sin imagen de perfil
Val: 2
Ha aumentado su posición en 4 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

Como filtrar por criterio de variación entre fechas en SQL Server

Publicado por Carlos (2 intervenciones) el 24/10/2018 01:56:26
Espero que alguien me pueda ayudar con el siguiente problema de la vida real =)

Tengo una BBDD "BD_EJEMPLO" y tabla "Ejemplo_Encuestas" en SQL Server que corresponden a encuestas a clientes y tiene los campos:

Id_Encuesta
Id_Cliente
Fecha_Encuesta
Calificacion
Calificacion_Agrupada

Donde:
- Id_Encuesta: Corresponde a un ID único de cada fila.
- Id_Cliente: Es el identificador de cada cliente encuestado y puede repetirse.
- Fecha_Encuesta: Fecha en que se efectuó la encuesta.
- Calificacion: Puntaje relacionado a la encuesta que varía de 0 a 10 donde 0 es malo y 10 es bueno.
- Calificacion_Agrupada: Agrupamiento del campo anterior "Calificacion" para tener solo 3 criterios donde "A" es bueno y corresponde a los puntajes 9 y 10, "B" es regular y corresponde a los puntajes 7 y 8 y "C" malo y corresponde a los puntajes desde el 0 hasta el 6.

Lo que se quiere marcar "SI"/"NO" en un campo adicional "Variacion_Negativa" aquellos "Id_Cliente" que en el tiempo disminuyeron en su Calificación"/"Calificacion_Agrupada".
Por decir algunos ejemplos:

- Si un cliente tiene tiene 02 encuestas con calificaciones de mas reciente a mas antiguo {"C";"A"} entonces en la nueva columna debería marcarse como un "SI" ya que disminuyó de "A" a "C".

- Otro cliente {"B";"B";"B";"A"} tiene 04 encuestas, tiene calificación "B" desde hace un tiempo, pero en algún momento fué "A", entonces también debe marcarse como "SI".

- Otro cliente {"A";"A";"A"} siempre tuvo la misma calificación entonces debe marcarse como un "NO".

- Otro cliente {"A";"B";"C"} Actualmente es "A" y antes era "B" varió hacia mejor, debe marcarse como un "NO" ya que solo buscamos aquellos que varían hacia menos.

- Otro {"C"} tiene una sola encuesta, entonces es "NO" ya que no hay variación.

En resumen:
Lo que se busca es marcar en la nueva columna con "SI", SOLO aquellas variaciones a menos comparando la encuesta mas reciente contra la anterior o si la anterior es igual con la variación mas reciente, teniendo en cuenta que el cliente ha tenido mas de una encuesta.

O de lo contrario obtener una nueva tabla con solo aquellos clientes "Id_Cliente" que cumplan con el criterio requerido.
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