services - Llevar a cabo una operación similar a SUMIF utilizando el Generador de informes de SQL Server
parametros de un informe (4)
El tipo de datos de la columna ''kWp'' es decimal, por lo que necesita convertir el valor predeterminado a 0,00 o convertir la columna a doble
SUM(iif(Fields!ProjectTypeID.Value = 2,cdbl(Fields!kWp.Value),0.00))
Estoy tratando de producir una suma condicional en SQL Server Report Builder 3.0.
Mi expresión se ve así:
=Sum(Iif(Fields!ProjectTypeID.Value=2,Fields!kWp.Value,0))
Esperaba que esta expresión produjera una suma del kWp de todos los proyectos de tipo 2.
Lamentablemente, no es para ser. Y parece que no puedo entender por qué. Simplemente devuelve un resultado de 0, aunque sé que hay valores distintos de cero en la columna de kWp, y la columna no contiene valores nulos.
Un colega logró obtener un resultado positivo al reemplazar el
Fields!kWp.Value
con
1 * Fields!kWp.Value
Pero no tenemos idea de por qué esto funciona y, por lo tanto, no podemos confiar realmente en la respuesta.
¿Cómo puedo conseguir que esta suma condicional se comporte?
Para obtener la sum
del kWp de todos los proyectos de tipo 2 , la expresión es la siguiente,
=IIf(Fields!ProjectTypeID.Value=2,sum(Fields!kWp.Value),0)
Espero que esto te ayude.
Para obtener la suma condicional puedes probar esta expresión
=sum(IIf(Fields!balance.Value > 0,(Fields!balance.Value),0))
Solo suma números positivos; de lo contrario, agrega 0 al total, puede hacerlo de manera inteligente.
Tuve un problema similar, esto me funcionó:
=Sum(iif(Fields!date_break.Value = "0001-01-01",Fields!brkr_fee.Value, nothing))
zb