Pasar filas a columnas

24/02/2004 - 17:14 por Josué Maldonado | Informe spam
Hola lista,

Tengo un pequeño problema, tengo una tabla de la forma:

create table estad
(nprodfk int, cmes char(6), hmes char(5),
nqty numeric(12,2), nsold numeric(12,5),
ncost numeric(12,2))

Que contiene la siguiente data:

insert into estad
values (25,'200402','FEB04',500,5000,2300)
go
insert into estad
values (25,'200401','ENE04',700,6200,2900)
go
insert into estad
values (25,'200312','DIC03',950,7100,3000)
go
insert into estad
values (25,'200311','NOV03',360,3900,1760)
go
insert into estad
values (25,'200310','OCT03',490,4600,1850)
go

El problema es que necesito mostrar los datos de la forma:

TIPO OCT03 NOV03 DIC03 ENE04 FEB04
NQTY 490 360 950 700 500
NSOLD 4600 3900 7100 6200 5000
NCOST 1850 1760 3000 2900 2300


Alguna idea o sugerencia de como hacerlo en T-SQL, gracias por anticipado.

Sinceramente,

Josué Maldonado.

Preguntas similare

Leer las respuestas

#1 Maximiliano D. A.
24/02/2004 - 17:16 | Informe spam
hola!! si conoces la cantidad de columnas con sus respectivos cortes podes
hacer algo asi


Selelect caampos from tabla left join (select campos from tabla where )
tabla2 on
tabla.campoid = tabla2.campoid
LEFT JOIN (select campos from tabla where .) tabla3 on
tabla.campoid = tabla3.campoid

Adaptalo a tus tablas

Bye


Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"Josué Maldonado" <josue|at@|lamundial.hn> escribió en el mensaje
news:%23GXX3Dv%
Hola lista,

Tengo un pequeño problema, tengo una tabla de la forma:

create table estad
(nprodfk int, cmes char(6), hmes char(5),
nqty numeric(12,2), nsold numeric(12,5),
ncost numeric(12,2))

Que contiene la siguiente data:

insert into estad
values (25,'200402','FEB04',500,5000,2300)
go
insert into estad
values (25,'200401','ENE04',700,6200,2900)
go
insert into estad
values (25,'200312','DIC03',950,7100,3000)
go
insert into estad
values (25,'200311','NOV03',360,3900,1760)
go
insert into estad
values (25,'200310','OCT03',490,4600,1850)
go

El problema es que necesito mostrar los datos de la forma:

TIPO OCT03 NOV03 DIC03 ENE04 FEB04
NQTY 490 360 950 700 500
NSOLD 4600 3900 7100 6200 5000
NCOST 1850 1760 3000 2900 2300


Alguna idea o sugerencia de como hacerlo en T-SQL, gracias por anticipado.

Sinceramente,

Josué Maldonado.






Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.593 / Virus Database: 376 - Release Date: 20/02/2004
Respuesta Responder a este mensaje
#2 KoKo
24/02/2004 - 17:32 | Informe spam
ESTA ES LA SOLUCION QUE ME ENVIO

Asunto: Re: SQL - Convertir Filas en Columnas
De: "Norman A. Armas"
Enviado: 2/22/2004 8:22:14 AM

select
c1,
[1]=sum(case when c2=1 then c3 else 0 end),
[2]=sum(case when c2=2 then c3 else 0 end),
[3]=sum(case when c2=3 then c3 else 0 end)
from
t2
group by
c1
order by
c1

Saludos,

Norman


ESTAS ES ORA SOLUCION QUE YO LE HALLE

create table t2 (c1 varchar(1), c2 int, c3 int)

insert into t2 values('A',1,100)
insert into t2 values('A',2,200)
insert into t2 values('A',3,300)
insert into t2 values('B',1,400)
insert into t2 values('B',2,500)
insert into t2 values('B',3,600)
insert into t2 values('C',1,700)
insert into t2 values('C',2,800)
insert into t2 values('C',3,900)

select * from t2

select c1,
(select c3 from t2 y where x.c1 = y.c1 and c2=1)
as res1,
(select c3 from t2 y where x.c1 = y.c1 and c2=2)as
res2,
(select c3 from t2 y where x.c1 = y.c1 and c2=3)
as res3
from t2 x
group by c1
Respuesta Responder a este mensaje
#3 ulises
24/02/2004 - 21:10 | Informe spam
Puedes revisar en el BOL el tema cross-tab reports y
encontrarás una forma de solucionarlo.

Saludos,
Ulises

Hola lista,

Tengo un pequeño problema, tengo una tabla de la forma:

create table estad
(nprodfk int, cmes char(6), hmes char(5),
nqty numeric(12,2), nsold numeric(12,5),
ncost numeric(12,2))

Que contiene la siguiente data:

insert into estad
values (25,'200402','FEB04',500,5000,2300)
go
insert into estad
values (25,'200401','ENE04',700,6200,2900)
go
insert into estad
values (25,'200312','DIC03',950,7100,3000)
go
insert into estad
values (25,'200311','NOV03',360,3900,1760)
go
insert into estad
values (25,'200310','OCT03',490,4600,1850)
go

El problema es que necesito mostrar los datos de la forma:

TIPO OCT03 NOV03 DIC03 ENE04 FEB04
NQTY 490 360 950 700 500
NSOLD 4600 3900 7100 6200 5000
NCOST 1850 1760 3000 2900 2300


Alguna idea o sugerencia de como hacerlo en T-SQL,


gracias por anticipado.

Sinceramente,

Josué Maldonado.

.

Respuesta Responder a este mensaje
#4 Josué Maldonado
25/02/2004 - 18:36 | Informe spam
Gracias a todos por sus sugerencias.

Josué Maldonado wrote:
Hola lista,

Tengo un pequeño problema, tengo una tabla de la forma:

create table estad
(nprodfk int, cmes char(6), hmes char(5),
nqty numeric(12,2), nsold numeric(12,5),
ncost numeric(12,2))

Que contiene la siguiente data:

insert into estad
values (25,'200402','FEB04',500,5000,2300)
go
insert into estad
values (25,'200401','ENE04',700,6200,2900)
go
insert into estad
values (25,'200312','DIC03',950,7100,3000)
go
insert into estad
values (25,'200311','NOV03',360,3900,1760)
go
insert into estad
values (25,'200310','OCT03',490,4600,1850)
go

El problema es que necesito mostrar los datos de la forma:

TIPO OCT03 NOV03 DIC03 ENE04 FEB04
NQTY 490 360 950 700 500
NSOLD 4600 3900 7100 6200 5000
NCOST 1850 1760 3000 2900 2300


Alguna idea o sugerencia de como hacerlo en T-SQL, gracias por anticipado.





Sinceramente,

Josué Maldonado.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida