Duda con el Crosstab

14/01/2004 - 18:44 por Lic. Jose Aguilera Iglesias | Informe spam
Hola Foro:

El Access existe la posibilidad de crear una consulta de tipo Crosstab
Query, permitiendo crear una consulta que me genera lo siguiente:

TRANSFORM Count(Tabla.id) AS Cantidad
SELECT Tabla.Division
FROM Tabla
GROUP BY Tabla.Division
PIVOT Tabla.Nombre;

Devolviendome algo como esto
Division are duelis is leo rey yo
Cam 1





Hab


1


Hg
1

1 1
Ltu

1





La pregunta es la siguiente: Por qué cuando trato de hacer lo mismo en SQL
Server no puedo? o Cómo lo puedo hacer en SQL Server?

Agradeciendoles de antemano

Jaigle
 

Leer las respuestas

#1 Pablo Salazar
14/01/2004 - 19:36 | Informe spam
Deberias de buscar en el BOL ahi hay un ejemplo, de todos modos te mando el
ejemplo
Se tiene una tabla como estaYear Quarter Amount
1990 1 1.1
1990 2 1.2
1990 3 1.3
1990 4 1.4
1991 1 2.1
1991 2 2.2
1991 3 2.3
1991 4 2.4
y queres trasformarla asi

Year Q1 Q2 Q3 Q4
1990 1.1 1.2 1.3 1.4
1991 2.1 2.2 2.3 2.4


Entonces usa la siguiente consulta
SELECT Year,
SUM(CASE Quarter WHEN 1 THEN Amount ELSE 0 END) AS Q1,
SUM(CASE Quarter WHEN 2 THEN Amount ELSE 0 END) AS Q2,
SUM(CASE Quarter WHEN 3 THEN Amount ELSE 0 END) AS Q3,
SUM(CASE Quarter WHEN 4 THEN Amount ELSE 0 END) AS Q4
FROM Northwind.dbo.Pivot
GROUP BY Year
GO

La Tabla tiene la siguiente forma .

USE Northwind
GO

CREATE TABLE Pivot
( Year SMALLINT,
Quarter TINYINT,
Amount DECIMAL(2,1) )
GO
INSERT INTO Pivot VALUES (1990, 1, 1.1)
INSERT INTO Pivot VALUES (1990, 2, 1.2)
INSERT INTO Pivot VALUES (1990, 3, 1.3)
INSERT INTO Pivot VALUES (1990, 4, 1.4)
INSERT INTO Pivot VALUES (1991, 1, 2.1)
INSERT INTO Pivot VALUES (1991, 2, 2.2)
INSERT INTO Pivot VALUES (1991, 3, 2.3)
INSERT INTO Pivot VALUES (1991, 4, 2.4)
GO

Preguntas similares