SSRS: Wyznaczanie w grupach średniej z uwzględnieniem wartości NULL

25-Kwi-2018

Jak SQL wyznaczy średnią z 10 NULL i 20 ?

NULL zostanie pominięte, mamy więc (10+20)/2 = 15

My jednak chcielibyśmy mieć NULL rozpatrywane jako zero: (10 + 0 + 20) / 3 = 10

Jak zaimplementować taką interpretację NULL w raporcie SSRS?

Na początku zakładam tabelę z przykładowymi danymi:

zakładam tabelę z przykładowymi danymi:

teraz tworzę raport, który pracuje na tych danych, z grupowaniem po roku. Definicja data set:

wygląd raportu:


grupowanie:


Oglądam raport i wygląda tak:


Funkcja Avg rzeczywiście opuszcza NULL i to jest dobrze, bo funkcje agregujące domyślnie tak się w SQL mają zachowywać.

Ponieważ Ty chcesz, aby NULL było równe 0, to wykonuję zmianę:


pod <<Expr>> mam wyrażenie:

a wynik wygląda tak:


Czyli Avg „widzi” null jak 0 i uwzględnia w liczeniu średniej.

Osobiście „nie lubię” tego jak SSRS interpretuje moje dane i staram się wykonywać konwersje na poziomie zapytania, które znajduje sięw data set. Zamiast:

można napisać tak:

wtedy wartości NULL zostaną wyeliminowane na poziomie SQL i SSRS będzie pracował na liczbach (zerach w przypadku NULL)

 

Dodaj komentarz:

Autor: Rafał Kraik