+39 339 8585151
info@easytarg.com
skip to the main content area of this page
I Ferri del Mestiere
 

Aggregare il Prodotto


Aggregare il Prodotto

SQL Server prevede diverse funzioni di aggregazione SUM(), MIN(), MAX(), AVG() ecc. ma, chissà perchè, non fornisce una funzione per calcolare il Prodotto.

Ovviamente l'utilità del prodotto è inferiore rispetto alla somma, ma è anche vero che non costerebbe poi molto agli sviluppatroi di SQL Server aggiungere tale funzione.
Aspettando la prossima versione del RDBMS, possiamo utilizzare uno dei due sitemi proposti di seguito.
Il primo richiede la dichiarazione ed inizializzazione di una variabile e sfrutta il sistema di assegnazione iterativo della SELECT. Il secondo sfrutta la SUM() e le proprietà del Logaritmo (anche se bisogna fare i conti con l'approssimazione decimale...).

L'importante è resistere alla tentazione di usare un cursore...


Soluzione "Prolissa"

DECLARE @Prod FLOAT
SET @Prod = 1

SELECT @Prod = @Prod * ColName
  FROM MyTable
 WHERE ColName IS NOT NULL

SELECT @Prod


Soluzione Cripto-Elegante

SELECT EXP(SUM(LOG(ColName))) AS ProductValue
  FROM MyTable




Tutte le Utility