PIVOT

di il
3 risposte

PIVOT

Ho creato questa pivot adattando del codice trovato su internet e vorrei salvarlo in una vista ma nn riesco.
qualcuno sa come si dovrebbe fare?
grazie

DECLARE @cols NVARCHAR(MAX) SELECT @cols = STUFF(( SELECT DISTINCT TOP 100 PERCENT '],[' + t2.AGENTE FROM Q_PROV_DA_CONFERMA AS t2 ORDER BY '],[' + t2.AGENTE FOR XML PATH('') ), 1, 2, '') + ']'
DECLARE @query NVARCHAR(MAX) SET @query = N'SELECT
IDCO, RAGIONE_SOCIALE, Azienda,
'+ @cols +'


FROM
(SELECT

t2.IDCO, t2.Euro_Prov, t2.RAGIONE_SOCIALE, t2.Azienda,
t2.AGENTE
FROM Q_PROV_DA_CONFERMA AS t2

) p

PIVOT
(
sum ([Euro_Prov] )
FOR AGENTE IN
( '+
@cols +' )
) AS pvt '
EXECUTE(@query)

3 Risposte

  • Re: PIVOT

    Salve,
    non mi risulta sia possibile creare una vista con questa funzionalita'...

    tecnicamente, e' possibile effettuare una proiezione da un "EXEC / sp_executesql" utilizzando la sintassi
    INSERT INTO nomeTabella -- o TabellaTemporanea o variabileTabella
    EXECUTE sp_executesql @cmd, @ParmDefinition
    , @siglaAgenzia = @sigla;

    ma questa sintassi non e' utilizzabile neanche in una funzione utente che ritorna una tabella, in quando e' vietato con eccezione "invalid use of a side effectin operator.."

    quindi resta solo incapsulare il tutto in una stored procedure

    salutoni romagnoli
    --
    Andrea
  • Re: PIVOT

    Grazie per la risposta.
    Ma esiste solo questo sistema per fare una pivot dinamica in SQL server?
    Cioè, se volessi fare una vista con pivot dinamica è possibile?

    Grazie
  • Re: PIVOT

    Salve,

    non mi viene in mente niente di intelligente... anche per l'aspetto teorico di cosa sia una vista...

    salutoni romagnoli
    --
    Andrea
Devi accedere o registrarti per scrivere nel forum
3 risposte