Published on

December 8, 2014

Formateo de Duraciones en SQL Server Analysis Services

¿Alguna vez has tenido problemas con el formateo de duraciones en SQL Server Analysis Services (SSAS)? En un proyecto reciente, me encontré con una situación en la que la fórmula que estaba utilizando para formatear las duraciones no manejaba correctamente los valores nulos. En este artículo, explicaré el problema y proporcionaré una solución para abordar este problema.

La fórmula que inicialmente utilicé formateaba las duraciones en un formato [hh]:mm:ss, permitiendo duraciones que excedieran las 24 horas. Sin embargo, al navegar por los datos, noté que el miembro Desconocido mostraba valores (null) en lugar de celdas vacías. Esto indicaba que la fórmula no estaba manejando correctamente los valores nulos.

Mi hipótesis es que SSAS no sabe de antemano si el resultado de la fórmula será nulo o no. Como resultado, calcula la medida de todos modos y muestra todos los valores en la cuadrícula, incluido el miembro Desconocido. Para resolver este problema, necesitaba agregar una verificación adicional para los valores nulos en la fórmula.

Aquí está la fórmula actualizada:

CREATE MEMBER CURRENTCUBE.[Measures].[DurationFormatted]
AS Iif(IsEmpty([Measures].[Duration]),
       null,
       Cstr((Int([Measures].[Duration]) * 24)
       + CInt(FORMAT(CDate([Measures].[Duration]), "HH")))
       + FORMAT(CDate([Measures].[Duration]), ":mm:ss")
   ),
VISIBLE = 1,
ASSOCIATED_MEASURE_GROUP = 'Customer Service';

Al incorporar la función Iif y la función IsEmpty, ahora podemos verificar explícitamente los valores nulos en la medida de duración. Si la medida está vacía, la fórmula devolverá nulo, ignorando efectivamente el miembro Desconocido al navegar por el cubo.

Con esta fórmula actualizada, ahora puedes formatear duraciones en SSAS mientras manejas correctamente los valores nulos. Esto asegura que las celdas vacías no se incluyan en el conjunto de datos devuelto, proporcionando una representación más precisa de los datos de duración.

Gracias por leer este artículo. Espero que te haya sido útil para abordar el problema del formateo de duraciones en SQL Server Analysis Services. Si tienes alguna pregunta o comentario, no dudes en dejarlos a continuación.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.