Trabajando con expresiones CASE
Conozca sobre el formato y los componentes de las expresiones CASE y algunas expresiones CASE utilizadas frecuentemente que puede construir para crear campos calculados en Reportes.
Cómo funciona
Una expresión CASE es una expresión condicional que puede utilizar para cambiar la forma en que se representan los datos. Las expresiones CASE permiten que una instrucción devuelva uno de varios resultados posibles, dependiendo de cuál de las varias condiciones se evalúa como verdadera.
Puede crear campos calculados utilizando expresiones CASE usando el generador de fórmulas Simple.
Si desea obtener más información, consulte Creación de campos calculados.
Formato de la expresión CASE
El formato de una expresión CASE es el siguiente:
CASE
WHEN (CUANDO) esto es cierto THEN (ENTONCES) devuelve esto
WHEN (CUANDO) esto es cierto THEN (ENTONCES) devuelve esto
...
ELSE (SI NO LO ES) devuelve esto
END
Componentes de una expresión CASE
Componente | Descripción |
---|---|
CASE | el componente inicial en una expresión CASE |
WHEN |
define una condición, como WHEN (CUANDO) ¿Asunto cerrado? Igual a 0 Múltiples componentes de WHEN pueden estar en una expresión CASE. Los componentes WHEN deben preceder al componente ELSE. |
THEN |
enlaza al componente WHEN y da instrucciones a Reportes sobre qué devolver cuando se cumple la condición Por ejemplo, WHEN (CUANDO) ¿Asunto cerrado? Igual a 0 THEN 'Asunto abierto' |
ELSE | un componente que se usa para informar a Reportes qué hacer cuando no se cumple ninguna de las condiciones WHEN |
END |
define el final de la expresión CASE Para que la expresión CASE sea válida, debe agregar END (FIN). |
Orden de ejecución de la expresión CASE
Las expresiones CASE se ejecutan en orden de izquierda a derecha. Si un campo concuerda con más de una condición WHEN, devolverá el resultado de la primera condición.
Por ejemplo, si tiene un proyecto llamado Proyecto X y un campo calculado con la siguiente lógica, el campo mostrará 'SOX':
CASE
WHEN Nombre del proyecto = Proyecto X THEN 'SOX'
WHEN Nombre del proyecto No es nulo THEN 'Nómina'
ELSE 'Viajes y entretenimiento'
END
Expresiones CASE utilizadas con frecuencia
La tabla a continuación proporciona una lista de las expresiones CASE usadas frecuentemente que puede compilar usando el generador de fórmulas Simple:
La hora del servidor de Reportes es UTC y el campo Fecha actual se muestra en UTC. UTC es un estándar de hora global que reemplazó a la Hora del Meridiano de Greenwich (GMT). Para la mayoría de los fines, ambos estándares son equivalentes. Para los datos de fechahora basados en UTC, si la conversión a UTC cruza el límite de la medianoche, la fecha se ajusta en un día.
Nombre del campo calculado | Expresiones CASE | Descripción | Otras consideraciones |
---|---|---|---|
Estado_de_la_prueba |
CASE WHEN Preparador de la prueba de control IS NOT NULL AND Revisor de detalle de la prueba de control IS NOT NULL AND Revisor general de la prueba de control IS NOT NULL THEN 'Completo' WHEN Preparador de la prueba de control IS NOT NULL OR Revisor de detalle de la prueba de control IS NOT NULL OR Revisor general de la prueba de control IS NOT NULL THEN 'En proceso' ELSE 'No iniciado' END |
muestra un resumen de la prueba de control con un estado de la prueba calculado |
|
Control_probado Control_aprobó Control_falló |
CASE ¿Es efectivo el control? IS NOT NULL THEN 1 ELSE 0 END CASE ¿Es efectivo el control? = 1 THEN 1 ELSE 0 END CASE WHEN ¿Es efectivo el control? = 0 THEN 1 ELSE 0 END |
muestra un resumen de las pruebas de control que indica si el control aprobó o falló |
|
Está_vencido |
CASE WHEN ¿Asunto cerrado? = 1 THEN 'Cerrado' WHEN Asunto corregido IS NULL THEN '' WHEN Fecha actual < Asunto corregido THEN 'No' ELSE 'Sí' END |
|
Las condiciones se ejecutan en orden de izquierda a derecha. Si un campo concuerda con más de una condición WHEN, devolverá el resultado de la primera condición. |
Es_antigüedad_vencida |
CASE WHEN Asunto cerrado = 0 AND Días para la corrección < 0 THEN Días para la corrección * 1 ELSE 0 END |
muestra la cantidad de días restantes para el Fin del plazo para las acciones correctivas |
|
Es_contenedor_vencido |
CASE WHEN Asunto cerrado = 0 AND Días para la corrección <= -1 AND Días para la corrección >= -30 THEN '0-30' WHEN Asunto cerrado = 0 AND Días para la corrección <= -31 AND Días para la corrección >= -60 THEN '31-60' WHEN Asunto cerrado = 0 AND Días para la corrección <= -61 AND Días para la corrección >= -90 THEN '61-90' WHEN Asunto cerrado = 0 AND Días para la corrección <= -91 '91+ ELSE 'Actual' END |
asigna contenedores de antigüedad a la cantidad de días de atraso del asunto. |
|
Sin_vencer_aún |
CASE WHEN Asunto cerrado = 0 AND Fecha actual < Asunto corregido AND Asunto corregido IS NOT NULL THEN 1 WHEN Asunto cerrado = 0 AND Asunto corregido IS NULL THEN 0 WHEN Asunto cerrado Close = 0 AND Asunto corregido <= Fecha actual AND Asunto corregido IS NOT NULL THEN 0 WHEN Asunto cerrado = 1 THEN 0 ELSE 9999 END |
similar a Está_vencido |
Maneje las siguientes condiciones:
|