Discussion:
trasponer columnas a filas
(demasiado antiguo para responder)
Mara
2004-09-01 16:33:54 UTC
Permalink
Hola a todos

quizas pido lo imposible, pero quien sabe...

tengo una tabla, linkada desde un archivo excell donde la estructura es la
siguiente:


(pr = producto, v = ventas, c = compras, p = precio)

cliente ; pr 1 v ; pr1 c ; pr 2 v ; pr 2 c ... pr N v ; pr N c ; pr 1 p ; pr
2 p ... pr N p

y lo necesito pasar a una tabla tal que:

cliente ; numero de producto ; ventas ; compras ; precio


repitiendose los campos key y en numero de producto 1, 2 ...N


es posible hacerlo de alguna forma sencilla ??

la unica idea que se me ha ocurrido es mediante vistas, hacer una vista de
la tabla original para cada producto y luego otra para la union de ellas,
pero son unos cuantos productos y varios los archivos originales, o sea, que
puedo pasarme media vida haciendo vistas

a alguien se le ocurre otra forma ?

gracias por adelantado
Sashka
2004-09-01 20:11:25 UTC
Permalink
http://support.microsoft.com/?kbid=283875

Sashka
MS MVP Access
Post by Mara
Hola a todos
quizas pido lo imposible, pero quien sabe...
tengo una tabla, linkada desde un archivo excell donde la estructura es la
(pr = producto, v = ventas, c = compras, p = precio)
cliente ; pr 1 v ; pr1 c ; pr 2 v ; pr 2 c ... pr N v ; pr N c ; pr 1 p ; pr
2 p ... pr N p
cliente ; numero de producto ; ventas ; compras ; precio
repitiendose los campos key y en numero de producto 1, 2 ...N
es posible hacerlo de alguna forma sencilla ??
la unica idea que se me ha ocurrido es mediante vistas, hacer una vista de
la tabla original para cada producto y luego otra para la union de ellas,
pero son unos cuantos productos y varios los archivos originales, o sea, que
puedo pasarme media vida haciendo vistas
a alguien se le ocurre otra forma ?
gracias por adelantado
Mara
2004-09-02 06:30:21 UTC
Permalink
Gracias Sahhka

pero con esta funcion traspongo todo, y lo que quiero es "una media
transposcion"

como explique, en la tabla tengo primero un campo cliente, y campos compra,
ventas, y precio para varios productos

y eso quiero pasarlo a otra table en el que la key sea cliente-producto, y
el resto de los campos compra, venta y precio, entonces, donde antes habia
un monton de columnas, tres para cada producto, quiero solo tres columnas, y
el tipo/numero de producto transpuesto

gracais de todas formas
Post by Sashka
http://support.microsoft.com/?kbid=283875
Sashka
MS MVP Access
Post by Mara
Hola a todos
quizas pido lo imposible, pero quien sabe...
tengo una tabla, linkada desde un archivo excell donde la estructura es la
(pr = producto, v = ventas, c = compras, p = precio)
cliente ; pr 1 v ; pr1 c ; pr 2 v ; pr 2 c ... pr N v ; pr N c ; pr 1 p
;
Post by Sashka
pr
Post by Mara
2 p ... pr N p
cliente ; numero de producto ; ventas ; compras ; precio
repitiendose los campos key y en numero de producto 1, 2 ...N
es posible hacerlo de alguna forma sencilla ??
la unica idea que se me ha ocurrido es mediante vistas, hacer una vista de
la tabla original para cada producto y luego otra para la union de ellas,
pero son unos cuantos productos y varios los archivos originales, o sea,
que
Post by Mara
puedo pasarme media vida haciendo vistas
a alguien se le ocurre otra forma ?
gracias por adelantado
Sashka
2004-09-02 17:30:38 UTC
Permalink
No sé si tengo claro lo que pides.... es bastante complicado.... No veo que
tengas el número de producto en la tabal linkeada...

Sashka
MS MVP Access
Post by Mara
Gracias Sahhka
pero con esta funcion traspongo todo, y lo que quiero es "una media
transposcion"
como explique, en la tabla tengo primero un campo cliente, y campos compra,
ventas, y precio para varios productos
y eso quiero pasarlo a otra table en el que la key sea cliente-producto, y
el resto de los campos compra, venta y precio, entonces, donde antes habia
un monton de columnas, tres para cada producto, quiero solo tres columnas, y
el tipo/numero de producto transpuesto
gracais de todas formas
Post by Sashka
http://support.microsoft.com/?kbid=283875
Sashka
MS MVP Access
Post by Mara
Hola a todos
quizas pido lo imposible, pero quien sabe...
tengo una tabla, linkada desde un archivo excell donde la estructura
es
Post by Mara
la
Post by Sashka
Post by Mara
(pr = producto, v = ventas, c = compras, p = precio)
cliente ; pr 1 v ; pr1 c ; pr 2 v ; pr 2 c ... pr N v ; pr N c ; pr 1 p
;
Post by Sashka
pr
Post by Mara
2 p ... pr N p
cliente ; numero de producto ; ventas ; compras ; precio
repitiendose los campos key y en numero de producto 1, 2 ...N
es posible hacerlo de alguna forma sencilla ??
la unica idea que se me ha ocurrido es mediante vistas, hacer una
vista
Post by Mara
de
Post by Sashka
Post by Mara
la tabla original para cada producto y luego otra para la union de
ellas,
Post by Sashka
Post by Mara
pero son unos cuantos productos y varios los archivos originales, o sea,
que
Post by Mara
puedo pasarme media vida haciendo vistas
a alguien se le ocurre otra forma ?
gracias por adelantado
Mara
2004-09-03 15:25:25 UTC
Permalink
hola sashka:

permiteme que te diga la solucion que tengo temporalmente pensada y quizas
te puedas hacer una mejor idea

de la tabla original creo tantas vistas como productos, de forma que

(NOTA: TABLA ORIGINAL : cliente ; pr 1 v ; pr1 c ; pr 2 v ; pr 2 c ... pr N
v ; pr N c ; pr 1 p ; pr 2 p ... pr N p )

vista_1er_producto : [cliente], producto :"1", venta:[pr 1 v]; compra: [pr
1 c]; precio: [pr 1 p]
vista_2er_producto : [cliente], producto :"2", venta:[pr 2 v]; compra: [pr
2 c]; precio: [pr 2 p]
...
vista_Ner_producto : [cliente], producto :"N", venta:[pr N v]; compra: [pr
N c]; precio: [pr N p]


y luego una vista union (en SQL) tal que

Select cliente, producto, venta, compra, precio FROM vista_1er_producto
UNION
Select cliente, producto, venta, compra, precio FROM vista_2er_producto
UNION
...
UNION
Select cliente, producto, venta, compra, precio FROM vista_Ner_producto


como veras esto funciona, solo tiene un problema, puedo pasarme varios dias
haciendo todas las vistas y uniones

alguna idea ??
Post by Sashka
No sé si tengo claro lo que pides.... es bastante complicado.... No veo que
tengas el número de producto en la tabal linkeada...
Sashka
MS MVP Access
Post by Mara
Gracias Sahhka
pero con esta funcion traspongo todo, y lo que quiero es "una media
transposcion"
como explique, en la tabla tengo primero un campo cliente, y campos
compra,
Post by Mara
ventas, y precio para varios productos
y eso quiero pasarlo a otra table en el que la key sea cliente-producto, y
el resto de los campos compra, venta y precio, entonces, donde antes habia
un monton de columnas, tres para cada producto, quiero solo tres
columnas,
Post by Sashka
y
Post by Mara
el tipo/numero de producto transpuesto
gracais de todas formas
Post by Sashka
http://support.microsoft.com/?kbid=283875
Sashka
MS MVP Access
Post by Mara
Hola a todos
quizas pido lo imposible, pero quien sabe...
tengo una tabla, linkada desde un archivo excell donde la estructura
es
Post by Mara
la
Post by Sashka
Post by Mara
(pr = producto, v = ventas, c = compras, p = precio)
cliente ; pr 1 v ; pr1 c ; pr 2 v ; pr 2 c ... pr N v ; pr N c ; pr
1
Post by Sashka
p
Post by Mara
;
Post by Sashka
pr
Post by Mara
2 p ... pr N p
cliente ; numero de producto ; ventas ; compras ; precio
repitiendose los campos key y en numero de producto 1, 2 ...N
es posible hacerlo de alguna forma sencilla ??
la unica idea que se me ha ocurrido es mediante vistas, hacer una
vista
Post by Mara
de
Post by Sashka
Post by Mara
la tabla original para cada producto y luego otra para la union de
ellas,
Post by Sashka
Post by Mara
pero son unos cuantos productos y varios los archivos originales, o
sea,
Post by Mara
Post by Sashka
que
Post by Mara
puedo pasarme media vida haciendo vistas
a alguien se le ocurre otra forma ?
gracias por adelantado
Sashka
2004-09-03 19:10:37 UTC
Permalink
uhmmm y siempre es diferente el número de productos???
Si es así.. lo único que se me ocurre es crear un proceso que lea la
estructura de la tabla... cuente la cantidad de productos y cree las
vistas.....

Es decir el número de productos es igual al (número de fields -1)/3

Por ejemplo...

Private Sub Comando0_Click()
Dim dbs As Database, tdf As TableDef
Set dbs = CurrentDb
Set tdf = dbs.TableDefs!Tabla1

For i = 1 To (tdf.Fields.Count - 1) / 3
SQL = "Select cliente, pr" & i & "v,pr" & i & "c,pr" & i & "p From tabla1"
dbs.CreateQueryDef "prod" & i & "", SQL
Next i
Set tdf = Nothing
Set dbs = Nothing
End Sub

Sashka
MS MVP Access
Post by Mara
permiteme que te diga la solucion que tengo temporalmente pensada y quizas
te puedas hacer una mejor idea
de la tabla original creo tantas vistas como productos, de forma que
(NOTA: TABLA ORIGINAL : cliente ; pr 1 v ; pr1 c ; pr 2 v ; pr 2 c ... pr N
v ; pr N c ; pr 1 p ; pr 2 p ... pr N p )
vista_1er_producto : [cliente], producto :"1", venta:[pr 1 v]; compra: [pr
1 c]; precio: [pr 1 p]
vista_2er_producto : [cliente], producto :"2", venta:[pr 2 v]; compra: [pr
2 c]; precio: [pr 2 p]
...
vista_Ner_producto : [cliente], producto :"N", venta:[pr N v]; compra: [pr
N c]; precio: [pr N p]
y luego una vista union (en SQL) tal que
Select cliente, producto, venta, compra, precio FROM vista_1er_producto
UNION
Select cliente, producto, venta, compra, precio FROM vista_2er_producto
UNION
...
UNION
Select cliente, producto, venta, compra, precio FROM vista_Ner_producto
como veras esto funciona, solo tiene un problema, puedo pasarme varios dias
haciendo todas las vistas y uniones
alguna idea ??
Post by Sashka
No sé si tengo claro lo que pides.... es bastante complicado.... No veo
que
Post by Sashka
tengas el número de producto en la tabal linkeada...
Sashka
MS MVP Access
Post by Mara
Gracias Sahhka
pero con esta funcion traspongo todo, y lo que quiero es "una media
transposcion"
como explique, en la tabla tengo primero un campo cliente, y campos
compra,
Post by Mara
ventas, y precio para varios productos
y eso quiero pasarlo a otra table en el que la key sea
cliente-producto,
Post by Mara
y
Post by Sashka
Post by Mara
el resto de los campos compra, venta y precio, entonces, donde antes
habia
Post by Sashka
Post by Mara
un monton de columnas, tres para cada producto, quiero solo tres
columnas,
Post by Sashka
y
Post by Mara
el tipo/numero de producto transpuesto
gracais de todas formas
Post by Sashka
http://support.microsoft.com/?kbid=283875
Sashka
MS MVP Access
Post by Mara
Hola a todos
quizas pido lo imposible, pero quien sabe...
tengo una tabla, linkada desde un archivo excell donde la estructura
es
Post by Mara
la
Post by Sashka
Post by Mara
(pr = producto, v = ventas, c = compras, p = precio)
cliente ; pr 1 v ; pr1 c ; pr 2 v ; pr 2 c ... pr N v ; pr N c ; pr
1
Post by Sashka
p
Post by Mara
;
Post by Sashka
pr
Post by Mara
2 p ... pr N p
cliente ; numero de producto ; ventas ; compras ; precio
repitiendose los campos key y en numero de producto 1, 2 ...N
es posible hacerlo de alguna forma sencilla ??
la unica idea que se me ha ocurrido es mediante vistas, hacer una
vista
Post by Mara
de
Post by Sashka
Post by Mara
la tabla original para cada producto y luego otra para la union de
ellas,
Post by Sashka
Post by Mara
pero son unos cuantos productos y varios los archivos originales, o
sea,
Post by Mara
Post by Sashka
que
Post by Mara
puedo pasarme media vida haciendo vistas
a alguien se le ocurre otra forma ?
gracias por adelantado
Mara
2004-09-06 09:29:00 UTC
Permalink
gracias, intentare aplicar esto
Post by Sashka
uhmmm y siempre es diferente el número de productos???
Si es así.. lo único que se me ocurre es crear un proceso que lea la
estructura de la tabla... cuente la cantidad de productos y cree las
vistas.....
Es decir el número de productos es igual al (número de fields -1)/3
Por ejemplo...
Private Sub Comando0_Click()
Dim dbs As Database, tdf As TableDef
Set dbs = CurrentDb
Set tdf = dbs.TableDefs!Tabla1
For i = 1 To (tdf.Fields.Count - 1) / 3
SQL = "Select cliente, pr" & i & "v,pr" & i & "c,pr" & i & "p From tabla1"
dbs.CreateQueryDef "prod" & i & "", SQL
Next i
Set tdf = Nothing
Set dbs = Nothing
End Sub
Sashka
MS MVP Access
Post by Mara
permiteme que te diga la solucion que tengo temporalmente pensada y quizas
te puedas hacer una mejor idea
de la tabla original creo tantas vistas como productos, de forma que
(NOTA: TABLA ORIGINAL : cliente ; pr 1 v ; pr1 c ; pr 2 v ; pr 2 c ...
pr
Post by Sashka
N
Post by Mara
v ; pr N c ; pr 1 p ; pr 2 p ... pr N p )
[pr
Post by Mara
1 c]; precio: [pr 1 p]
[pr
Post by Mara
2 c]; precio: [pr 2 p]
...
[pr
Post by Mara
N c]; precio: [pr N p]
y luego una vista union (en SQL) tal que
Select cliente, producto, venta, compra, precio FROM vista_1er_producto
UNION
Select cliente, producto, venta, compra, precio FROM vista_2er_producto
UNION
...
UNION
Select cliente, producto, venta, compra, precio FROM vista_Ner_producto
como veras esto funciona, solo tiene un problema, puedo pasarme varios
dias
Post by Mara
haciendo todas las vistas y uniones
alguna idea ??
Post by Sashka
No sé si tengo claro lo que pides.... es bastante complicado.... No veo
que
Post by Sashka
tengas el número de producto en la tabal linkeada...
Sashka
MS MVP Access
Post by Mara
Gracias Sahhka
pero con esta funcion traspongo todo, y lo que quiero es "una media
transposcion"
como explique, en la tabla tengo primero un campo cliente, y campos
compra,
Post by Mara
ventas, y precio para varios productos
y eso quiero pasarlo a otra table en el que la key sea
cliente-producto,
Post by Mara
y
Post by Sashka
Post by Mara
el resto de los campos compra, venta y precio, entonces, donde antes
habia
Post by Sashka
Post by Mara
un monton de columnas, tres para cada producto, quiero solo tres
columnas,
Post by Sashka
y
Post by Mara
el tipo/numero de producto transpuesto
gracais de todas formas
Post by Sashka
http://support.microsoft.com/?kbid=283875
Sashka
MS MVP Access
Post by Mara
Hola a todos
quizas pido lo imposible, pero quien sabe...
tengo una tabla, linkada desde un archivo excell donde la
estructura
Post by Mara
Post by Sashka
es
Post by Mara
la
Post by Sashka
Post by Mara
(pr = producto, v = ventas, c = compras, p = precio)
cliente ; pr 1 v ; pr1 c ; pr 2 v ; pr 2 c ... pr N v ; pr N c ;
pr
Post by Mara
1
Post by Sashka
p
Post by Mara
;
Post by Sashka
pr
Post by Mara
2 p ... pr N p
cliente ; numero de producto ; ventas ; compras ; precio
repitiendose los campos key y en numero de producto 1, 2 ...N
es posible hacerlo de alguna forma sencilla ??
la unica idea que se me ha ocurrido es mediante vistas, hacer una
vista
Post by Mara
de
Post by Sashka
Post by Mara
la tabla original para cada producto y luego otra para la union de
ellas,
Post by Sashka
Post by Mara
pero son unos cuantos productos y varios los archivos
originales,
Post by Sashka
o
Post by Mara
Post by Sashka
sea,
Post by Mara
Post by Sashka
que
Post by Mara
puedo pasarme media vida haciendo vistas
a alguien se le ocurre otra forma ?
gracias por adelantado
Continúe leyendo en narkive:
Loading...