FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Columnas dimámicas....???
Hola a todos
en este momento tengo una inquietud y me gustaría saber si es posible realizar tal cosa; la cuestión es la siguiente. tengo una tabla con un campo tipo fecha. luego deseo generar una consulta que me arroje los datos no en filas sino en columnas, me hago a entender, supongase que la tabla tiene 10 registros con 5 meses distintos en un mismo año, la consulta a momento de vaciarla a un dbgrid me debe mostrar las 5 columnas correspondientes a cada mes. de antemano gracias por todo el interés que se presente |
#2
|
||||
|
||||
Hola
La verdad no entiendo muy bien el problema, el dbgrid va a presentar la informacion que se quiera, es cuestion de hacer una consulta sql con un query y darle el orden que se necesite en el dbgrid, no se, no entiendo cual es el problema. Saludos |
#3
|
||||
|
||||
columnas dinámicas
suponte que la consulta va a generar un campo tipo fecha eso normalmente
fecha ======= 01/05/2007 15/05/2007 01/01/2007 01/02/2007 lo que me gustaría es que mostrara los datos de esta manesra enero febrero mayo ============================ 01/01/2007 01/02/2007 01/05/2007 15/05/2007 creo que ahora sí.... |
#4
|
||||
|
||||
Creo que lo que quieres podría hacerse con la instrucción SQL "Pivot", el problema es que no todos los motores tienen esa instrucción.
También es posible que puedas simularlo artificialmente, creando una nueva tabla al vuelo y colocando apropiadamente los valores obtenidos. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#5
|
||||
|
||||
Hola, que tal algo asi ?
(ej: en mysql) Para una respuesta mas optimizada o que se ajuste mejor a tus requerimientos necesitaria saber que motor SQL usas. Saludos |
#6
|
||||
|
||||
ese codigo no le va a servir porque si te fijas necesita que en cada fila aparezcan los datos de todos los meses. Saldria algo como:
Código:
ENERO -----febrero ----marzo 01/01/07 null null null 01/02/07 null null null 01/03/07 Código:
ENERO -----febrero ----marzo 01/01/07 01/02/07 01/03/07 SQL Server y otros tienen una funcion transform y PIvot que en teoría puede hacer eso.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#7
|
||||
|
||||
Cita:
si ves lo que el plantea enero febrero mayo ============================ 01/01/2007 01/02/2007 01/05/2007 15/05/2007 lo que yo plantee devuelve enero febrero mayo ============================ 01/01/2007 01/02/2007 01/05/2007 15/05/2007 null null o podria reemplazar el null por lo que el quiera. Yo creo que si le sirve, porque no esperas que responda el interesado y de su veredicto y ves si sirve o no. Por otra parte sin duda usar pivot le va a solucionar su problema, pero eso no lo sabremos (si lo puede utilizar o no) hasta conocer que motor SQL usa. Saludos. |
#8
|
||||
|
||||
Hola:
Este tema por lo menos lo resuelvo en php mediante arreglos, y en html voy jugando con los valores del arreglo, empero, es algo un poco complicado, lo cual ni siquiera a mí me satisface . Por otro lado he escuchado que los cubos SQL resuelven este tipo de problemas , pero no sigo argumentando mas allá porque mis conocimientos no llegan a tal punto... Hasta Luego .-
__________________
No todo es como parece ser... |
#9
|
||||
|
||||
columnas dinámicas...???
Es cierto lo que afirma AzidRain.
creo que tendré que lanzar una consulta para averiguar cuántos registros "Meses" se encuentran en la tabla inicial, luego se creará la table temporal con el número de meses resultantes que pueden ser 48, es decir una table que tendrá por lo menos 48 columnas y luego pasar de la tabla inicial a la tabla temporal. Esa es la solución que me he planteado por mucho tiempo y me imaginé que podría haber otra solución... Gracias por tados su aportes y el interés que me prestaron; si hay algún otro aporte, con gusto lo atenderé. GustavoCruz |
#10
|
||||
|
||||
Para evitar la creación de una tabla, podría usarse un Procedimiento almacenado (Store Procedure). Como no se comenta si es paradox, firebird, mySql, etc... pues mejor no digo nada y me quedo callado.
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#11
|
||||
|
||||
Bueno chicos, discrepo un poco de lo dicho anteriormente.
ACotemos. A no ser que sea un caso excepcional, los humanos funcionamos por años. Esto quiere decir que los datos devueltos por la consulta serán máximo 32 filas ( titulo y dias del mes ) y 12 columnas ( meses del año). Podemos no volvernos locos y utilizar una string-grid. Si queremos hacer una consulta que devuelva todo a la primera y esperando no colarme, debo suponer que sólo puede haber un registro por día, sino no tendría sentido. Y una vez dicho esto, podemos probar con lo siguiente
Bueno, antes de enviar el mensaje he intentado probar en firebird y no hay 'pelotas' para encontrar las funciones mes y dia de una fecha. En otros motores entiendo que no debiera haber ningún problema adecuandolos un poco. Saludos a todos A ver si alguine se anima y los puede probar en diferentes motores.
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - Última edición por fjcg02 fecha: 09-06-2007 a las 00:22:22. |
#12
|
||||
|
||||
Puede que diga una tontería, ¿Pero no se podría lograr este efecto con los componentes de la paleta Decision Cube?
Digo... en una de esas... lanzar la consulta y que despues se pivoteen los resultados con los componentes. Creería que para eso estan... para armar cubos de datos y pivotearlos. Si dije algo demasiado tonto, disculpen. No he usado Los Decision Cube. Saludos, |
#13
|
||||
|
||||
No sé porqué el otro dia posteé la solución a lo que propuse y ha desaparecido
Este ejemplo muestra lo que decía No se porqué - y ahora pregunto yo - no doy con las funciones dia y mes en firebird, lo que he hecho es hacer un cast de las fechas a texto y seleccionar el día y el mes según lo necesito. Podría alguien poner un poco de luz en este asunto ? . Seguro que es una chorrada, pero no soy con ello. Respecto a usar el cubo, no me ha dado buenos resultados. Por cierto, si en la primera respuesta que doy voy acertado, no tiene mucho sentido utilizar una query para extraer estos datos, puede ser mucho más sencillo utilizar un string grid. Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#14
|
||||
|
||||
columnas dinámicas
Les envío adjunto un reporte en excel, en el podran encontrar información que se toma de varias tablas, pero las que importan son las siguientes
Libranzas ========= numero Valor Fechaelaboracion fechainicio fechafin cuotas cuotasrestantes valcuotas cliente monto intereses Pagos ========= ide libranza fechaacuerdo fechapago horapago valpagado cuotanumero segun el número de cuotas que se especifican en la tabla libranzas se llena la tabla pagos, es decir, me aprueban una solicitud de crédito para pagar a 24 meses, entonces debo llenar la tabla pagos y luego al realizar los pagos debo actualizar dicha tabla. asi que hay 20 solicitudes 10 a 24 meses 5 a12 meses y las restantes a 18 meses, se debe generar el reporte que adjunto, pues de él debo tomar la espectativa de recaudo, el recaudo, las personas que pagan en la fecha acordada, los que son moros, etc... espero no ser cansón con este asunto... De antemano gracias por sus aportes. GustavoCruz |
#15
|
||||
|
||||
Con el decision cube se supone que se puede hacer esto facilmente, pero la verdad trae poca documentación y a mi me ha costado mucho encontrar algo digerible
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Duda con columnas en DBF | NeWsP | Tablas planas | 11 | 25-07-2006 19:28:38 |
Columnas en QReport | jdangosto | Impresión | 1 | 28-09-2004 16:57:53 |
Descripcion Columnas | OmarPerez | Firebird e Interbase | 1 | 16-04-2004 19:50:13 |
columnas en rxrichedit | mosorio | Varios | 0 | 14-04-2004 13:36:52 |
Dos columnas | karlita_cb | Tablas planas | 1 | 26-03-2004 02:23:21 |
|