Salve a tutti,
Visto che sono novizio di sql server 2008 non riesco a capire il perche una procedura di questo tipo mi restituisca sempre result value=0 e non i valori da me voluti
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[PivotIncrociato]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
declare @Elementi varchar(max)
set @Elementi='';
--Creazione di soli valori utili
with col as (
select distinct data from orari
)
--creazione di stringa valori utilizzabili
select @Elementi = @Elementi + data + ',' from col;
--Eliminazione ultima virgola che darebbe errore
set @Elementi = substring(@Elementi, 1, len(@Elementi));
declare @q nvarchar(max);
set @q = '
SELECT cognome ,nome from
(select cognome,nome,data,orario from VistaPersOrari) as up
pivot(max(orario) for data in (' + @Elementi + ')) as ppp '
END
Quello che vorrei ottenere e per ogni persona in base alla data l'orario corrispondente
esempio
Nome 01/01/2008 02/01/2008
Salvatore 01/07 Riposo
Il tutto in modo dinamico visto che non so quanti giorni sono inseriti.
Altra cosa. Come si puo notare la substring non ha nellultimo valore il -1 in quanto mi da errore di lunghezza che non riesco a capire :
set @Elementi = substring(@Elementi, 1, len(@Elementi)-1);
e quindi l'ho lasciata senza -1 ma non penso sia corretto.
Sto usando la procedura esatta.
Dove erro??
grazie
ASP 2.0 - VB 2008