Query crosstab sqlserver 2008

mercoledì 14 novembre 2012 - 18.09
Tag Elenco Tags  Windows XP  |  SQL Server 2008  |  Access (.mdb)  |  Office 2007  |  Chrome

robex2012 Profilo | Newbie

Salve,

* Definisco la tabella dbo.Tabella1 */
CREATE TABLE dbo.Tabella1(
UserName varchar(50) NOT NULL,
Nome_Maschera varchar(50) NOT NULL
Abilitato char(2) NOT NULL
)
GO
/* La popolo */
INSERT dbo.Tabella1 VALUES('marco', ‘analisi’,’si’)
INSERT dbo.Tabella1 VALUES('marco', ‘report’,’no’)
INSERT dbo.Tabella1 VALUES('marco', ‘inserimento’,’si’)
INSERT dbo.Tabella1 VALUES('marco', ‘carico’,’no’)
INSERT dbo.Tabella1 VALUES('gigi', ‘analisi’,’si’)
INSERT dbo.Tabella1 VALUES('gigi', ‘report’,’no’)
INSERT dbo.Tabella1 VALUES('gigi', ‘inserimento’,’no’)
INSERT dbo.Tabella1 VALUES('gigi', ‘carico’,’si’)
GO
Con access ottengo da questa query a campi incrociati:

TRANSFORM First(Tabella1.Abilitato) AS PrimoDiAbilitato
SELECT Tabella1.Nome_Maschera
FROM Tabella1
GROUP BY Tabella1.Nome_Maschera
PIVOT Tabella1.UserName;

Nome_Maschera marco gigi
analisi si si
report no no
inserimento si no
carico no si

Come ottengo questo con sql 2008?
mi potete fare un esempio
grazie

renarig Profilo | Expert

Vorrei essere smentito

ma le queri a campi incrociati con SQLSrver
( mi risulta anche con MySql e Oracle ) hanno delle limitazioni nel senso che
anche se puoi fare il PIVOT ti manca il TRANSFORM



pertanto gia in fase di scrittura della queri devi conoscere il numero e
nome de campi ( le colonne )

Invece con Access questo non è necessario.


http://msdn.microsoft.com/it-it/library/ms177410.aspx

http://msdn.microsoft.com/it-it/library/ms177410%28v=sql.90%29.aspx



.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5