Pasar tabla a matriz con dbgrid
Hola a todos:
Solicito su gran ayuda para pasar datos de una tabla que contiene los campos: modelo, talla , color a una matriz donde obtenga en las filas los colores y en las columnas las tallas dando como resultado en la interseccion la cantidad por talla. Lo he intentado poniendo una consulta con query Código SQL [-] SELECT distinct(color), count(talla) FROM invent.dbf group by color y solo obtengo el conteo por talla pero no puedo acomodarlos en la talla que le corresponde Ej. COLOR/ TALLA__1 2 3 NEGRO_________3 5 2 AZUL___________5 2 6 Saludos y gracias anticipadas por la ayuda |
Hola a todos:
En vista de la nula aportacion me he visto en la necesidad de replantear la pregunta, tal vez no fui lo suficientemente claro y segui intentando por mi cuenta: se trata de una rutina que como mencione tiene una tabla que contiene modelo, talla y color. en el dbgrid quiero obtener estos datos en forma matricial para lo cual hago lo siguiente:
SELECT DISTINCT color, count(talla) FROM invent.dbf where talla='30' GROUP BY COLOR en la que DISTINCT permite que aparezca una sola vez el color aunque se repita N veces y COUNT (talla) acumula el conteo de las tallas en la tabla y para obtener una talla especifica utilizo la condicion WHERE. sin embargo solo puedo obtener en la columna 'count of talla' el resultado de la condicion WHERE y no en la columna que le corresponde a cada talla. Si alguien puede ayudarme un poco mas lo agradecere bastante. SALUDOS:o |
Cita:
Lo que planteas, no veo como hacerlo desde una simple consulta, al menos yo no lo veo tan claro:rolleyes: pero en base a tu primer post, te recomiendo que trates con esto: Creas 3 Querys. Query1
Query2
Query3
Edito: En Query3, no es necesario usar DISTINCT para obtener la información. Hasta aqui, tendremos 3 consultas que nos van a dar la pauta para poder crear lo que deseas. Agrega un TStringGrid a tu forma y un Botón En el Botón pon este código
Me imagino que hay algo mas elegante, pero ya los compañeros del foro te podrán dar mejores respuestas. Salud OS. |
Pasar tabla a Matriz con Dbgrid
Hola egostar:
Te agradezco mucho el apoyo, lo estoy probando y me parece muy bien y mas que nada las orientacion que me das, es una excelente idea, espero adaptarla para mi proposito y les devuelvo la solucion a la que llegue. |
para verlo bonito, puedes usar un PivotTable o un en un reporte de FastReport o ReportBuilder usando un CrossTab, lo que quieres mostrar es simplemente un tabular cruzado, esto se debe hacer con herramientas olap checa este link http://bdn1.borland.com/article/borc...l#_Toc35662799
|
Hola a todos, aqui de nuevo:
Disculpen la insistencia de hacerlo en DbGrid pero es algo que quiero hacer y espero pueda realizarlo con su gran ayuda. He hecho algunos cambios obteniendo lo siguiente: me da los resultados parciales sin embargo los no puedo obtenerlos todos al mismo tiempo en pantalla, alguien tiene una sugerencia? Código Delphi [-]procedure TForm1.Button1Click(Sender: TObject); begin for j := 0 to 10-1 do begin numtalla:=Query1.Fields[j].AsString; Close; Query3.SQL.Clear; Query3.SQL.add('SELECT distinct(color),count(talla)as'+numtalla); Query3.SQL.add('FROM invent'); Query3.SQL.add('WHERE talla='+ #39+numtalla+#39); Query3.SQL.add('GROUP BY color, talla'); Query3.OPEN; SLEEP(1000); Query3.Next; end; end; SALUDOS |
La franja horaria es GMT +2. Ahora son las 01:14:23. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi