Ciao a tutti ragazzi, ho una tabella creata per definire delle funzioni dinamiche.
Sulla colonna FUNZIONE c'è il nome della funzione e sulle righe ci sono i parametri da passare.
La pivot è perfetta per risolvere il mio problema:
DECLARE @tbl TABLE (ID INT, PARAMETRO SMALLINT, FUNZIONE VARCHAR(150), VALORE VARCHAR(3))
INSERT INTO @tbl (ID, PARAMETRO, FUNZIONE, VALORE)
VALUES(3729,'1450','dbo.CALCOLAMAGG(1,2)','T1')
INSERT INTO @tbl (ID, PARAMETRO, FUNZIONE, VALORE)
VALUES(3729,'12200','dbo.CALCOLAMAGG(1,2)','T2')
SELECT * FROM @tbl
PIVOT (
AVG(PARAMETRO)
FOR VALORE IN (T1,T2,T3,T4,T5,T6,T7,T8,T9,T10)
) a
Ora le cose si sono complicate, i parametri agli inizi erano interi ora sono stringhe (divise dal |)...
DECLARE @tbl TABLE (ID INT, PARAMETRO VARCHAR(100), FUNZIONE VARCHAR(150), VALORE VARCHAR(3))
INSERT INTO @tbl (ID, PARAMETRO, FUNZIONE, VALORE)
VALUES(3729,'1450|1122','dbo.CALCOLAMAGG(1,2)','T1')
INSERT INTO @tbl (ID, PARAMETRO, FUNZIONE, VALORE)
VALUES(3729,'12200|1122','dbo.CALCOLAMAGG(1,2)','T2')
SELECT * FROM @tbl
PIVOT (
(PARAMETRO)
FOR VALORE IN (T1,T2,T3,T4,T5,T6,T7,T8,T9,T10)
) a
Come definisto il campo (PARAMETRO) di aggregazione?