nullif error entre división dividir cero sql db2 birt zos

dividir - error de división entre cero. sql



¿Cómo obligo a BIRT a mostrar valores cero? (2)

Tengo una situación en el informe BIRT. Un informe que he creado insiste en mostrar algunos campos en blanco en lugar de cero. La situación surge cuando el campo es en realidad una sub selección que no devuelve filas.

Entonces, por ejemplo, si el seleccionar incluye:

0 as p3,

entonces el 0 se muestra bien. Sin embargo, si el seleccionado tiene:

(select sum(other_field) from other_table where ...) as p3,

el campo se muestra en blanco.

La modificación de los datos para que las filas existan para la selección secundaria da como resultado un valor que se muestra, incluso si el valor resultante es cero .

Así que estoy pensando que de alguna manera BIRT está tratando una sub-selección que devuelve cero filas como NULL (que también se muestra como una celda vacía) en lugar de cero. ¿Alguien tiene alguna idea de cómo forzar a BIRT a mostrar un 0 real en lugar de una celda vacía?

Estoy utilizando DB2 / z v8 si alguien necesita publicar una respuesta específica de DBMS, aunque se agradecerán incluso las sugerencias basadas en otros proveedores.


Intente utilizar la función COALESCE para forzar un valor cuando una columna o expresión pueda devolver NULL.

COALESCE((select sum(other_field) from other_table where ...), 0) as p3,


Otra forma, aunque no tan elegante, pero a veces necesaria (por ejemplo, si está ejecutando un procedimiento almacenado que no puede cambiar), sería usar JavaScript para forzar la visualización de "0" en tiempo de ejecución.

Use la siguiente expresión para su enlace de datos:

if (dataSetRow["your_data_set"] == null) { 0 } else { dataSetRow["your_data_set"] }

Según el tipo de datos, es posible que deba agregar comillas al cero

"0"

para representar Cadenas, sin comillas se trata como un Entero.