Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Transformar Filas en Columnas

Estas en el tema de Transformar Filas en Columnas en el foro de Bases de Datos General en Foros del Web. Hola, supongo que este tema ha de ser uno de los mas vistos en este foro, pero despues de buscar un buen rato no encontre ...
  #1 (permalink)  
Antiguo 04/10/2005, 14:55
 
Fecha de Ingreso: febrero-2005
Mensajes: 7
Antigüedad: 19 años, 2 meses
Puntos: 0
Transformar Filas en Columnas

Hola, supongo que este tema ha de ser uno de los mas vistos en este foro, pero despues de buscar un buen rato no encontre algo que me pudiera aydar y espero que alguien pueda hacerlo.

Tengo el famoso problema en el que tengo una tabla en la que guardo las denominaciones de los billetes, 1000, 500 200 etc. y otra en la que guardo cuantos billetes tengo por cada ficha de deposito (esto ae algo asi como un sistema de banco), es decir, denominacion, cantidad de billetes y el importe (multiplicacion de la denomincaion x la cantidad), el caso es que se me pide un reporte en que las denominaciones deben estar por columna... ya estube buscando en internet, y si he encontado algo paero la verdad no soy un experto y nesecito ayuda, la DB es SQL, yo se que el SQL puede hacer eso y mas, el problema es que no se como.

Espero me puedan ayudar... Saludos!!!
  #2 (permalink)  
Antiguo 04/10/2005, 15:02
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98


A ver, tienes una tabla similar a esta:

Código:
1  |  50  
2  |  100 
3  |  200
4  |  500
Lo cual me parece perfectamente valido, ahora tu lo que quieres es generar reportes a partir de estos datos, relacionandolos con tu otra tabla de denominacion_billetes, que dicho sea de paso, no guardes valores que puedes calcular (billetes*denominacion).

Ahora tu pretendes cambiar la estructura de tu tabla en lugar de tener id, denominacion, quieres poner la denominacion en tantas columnas como sea necesario? si es asi, me parece que la solucion a tu problema no va por ahi.

QUe tecnologia de scripting estas utilizando, si usas alguna?
En donde debe aparecer este reporte?
Me parece que el problema deberia ser mas del manejo de los datos que de la estructura, a lo mejor si te explicas un poco mejor, podemos echarte un cable.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 04/10/2005, 16:10
 
Fecha de Ingreso: febrero-2005
Mensajes: 7
Antigüedad: 19 años, 2 meses
Puntos: 0
Ok, la verdad guardo el importe por "comodidad", de hecho me sirve a la hora de sacar la suma de toso los importes, pero tomare encuenta tu comentario, con respecto ami problema yo tengo lo sig:

Tabla de denominaciones:

1000 *no manejo id
500
200

Tabla de fichas:

Ficha | Denominacion | Cantidad | Importe
1 | 1000 | 1 | 1000
1 | 500 | 5 | 2500
1 | 200 | 0 | 0
2 | 1000 | 2 | 2000
2 | 500 | 1 | 500
2 | 200 | 2 | 200

y lo que quiero es esto:

Ficha | 1000 | 500 | 200 | Importe
1 | 1 | 2 | 0 | 3500
2 | 2 | 1 | 2 | 2700

espero se entienda el ejemplo

como lo comente, no soy un experto jaja y pues no uso scripting
en algun lado lei que esto se puede hacer con un procedimiento almacenado pero nunca he usado y mucho menos hecho uno... la apliccin esta esta en Visual Basic

Saludos y gracias por la ayuda...
  #4 (permalink)  
Antiguo 04/10/2005, 16:57
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 5 meses
Puntos: 11
select ficha,
count( iif(denominacion=1000, 1,0)) as bille_1000,
count( iif(denominacion=500, 1,0)) as bille_500,
count( iif(denominacion=200, 1,0)) as bille_200,
sum (importe)
from tablafichas
Group by ficha
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #5 (permalink)  
Antiguo 05/10/2005, 10:14
 
Fecha de Ingreso: febrero-2005
Mensajes: 7
Antigüedad: 19 años, 2 meses
Puntos: 0
Cita:
Iniciado por Linterns
select ficha,
count( iif(denominacion=1000, 1,0)) as bille_1000,
count( iif(denominacion=500, 1,0)) as bille_500,
count( iif(denominacion=200, 1,0)) as bille_200,
sum (importe)
from tablafichas
Group by ficha

No he podido probar este codigo..
me marca el sig. error:

Línea 1: sintaxis incorrecta cerca de '='.

y no lo he podido resolver
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:14.