J'essaie de produire une somme conditionnelle dans SQL Server Report Builder 3.0.
Mon expression ressemble à ceci:
=Sum(Iif(Fields!ProjectTypeID.Value=2,Fields!kWp.Value,0))
J'espérais que cette expression produirait la somme des kWp de tous les projets de type 2.
Malheureusement, ce n'est pas le cas. Et je n'arrive pas à comprendre pourquoi. Il renvoie simplement un résultat 0, même si je sais qu'il existe des valeurs non nulles dans la colonne kWp et que la colonne ne contient pas de valeurs NULL.
Un collègue a réussi à obtenir un résultat positif en remplaçant le
Fields!kWp.Value
avec
1 * Fields!kWp.Value
Mais nous ne savons pas pourquoi cela fonctionne, et par conséquent, nous ne pouvons pas vraiment faire confiance à la réponse.
Comment puis-je obtenir cette somme conditionnelle pour se comporter?
Le type de données de la colonne 'kWp' est Décimal. Vous devez donc convertir la valeur par défaut en 0.00 ou convertir la colonne en double.
SUM(iif(Fields!ProjectTypeID.Value = 2,cdbl(Fields!kWp.Value),0.00))
Pour obtenir la sum
du kWp de tous les projets de type 2 , l'expression est la suivante:
=IIf(Fields!ProjectTypeID.Value=2,sum(Fields!kWp.Value),0)
J'espère que cela vous aidera.
J'ai eu un problème similaire, cela a fonctionné pour moi:
=Sum(iif(Fields!date_break.Value = "0001-01-01",Fields!brkr_fee.Value, nothing))
zb
Pour obtenir la somme conditionnelle, vous pouvez essayer cette expression
=sum(IIf(Fields!balance.Value > 0,(Fields!balance.Value),0))
Il additionne uniquement les nombres positifs, sinon il ajoute 0 au total, vous pouvez le faire en sens inverse.