Pregunta sobre generación de tablas cruzadas

25/07/2003 - 23:39 por Mariano Donaldson | Informe spam
Hola a todos

tengo una consulta SQL con la cual se genera una tabla cruzada, pero lo que
me sale como columnas, yo querría que me saliera como filas y viceversa.
¿Cómo hay que hacer? Estuve probando de todo y no me salió. Seguro es una
pavada

Gracias a quien pueda y quiera darme una mano

Mariano Donaldson
pony@fibertel.com.ar
Buenos Aires, Argentina

Preguntas similare

Leer las respuestas

#1 Ricardo Passians
26/07/2003 - 14:02 | Informe spam
Da un ejemplo de las tablas que usas y la salida que deseas para entender
mejor el punto.



"Mariano Donaldson" wrote in message
news:uWD$#
Hola a todos

tengo una consulta SQL con la cual se genera una tabla cruzada, pero lo


que
me sale como columnas, yo querría que me saliera como filas y viceversa.
¿Cómo hay que hacer? Estuve probando de todo y no me salió. Seguro es una
pavada

Gracias a quien pueda y quiera darme una mano

Mariano Donaldson

Buenos Aires, Argentina


Respuesta Responder a este mensaje
#2 Mariano Donaldson
26/07/2003 - 16:20 | Informe spam
Ricardo:

Es una única tabla:
En ella tengo detallado los gastos de un edificio discriminados por rubro,
lo que hago con la consulta SQL es averiguar cuánto se gastó por cada rubro
en cada mes, pero me tira los rubros como columnas (cortándome los nombres
de los campos a 10 caracteres) y los meses como filas.
Yo necesitaría que salieran los meses como columnas y los rubros de gastos
como filas.

SELECT Exphdr.periodo, Exphdr.rubro, SUM(Exphdr.monto);
FROM exphdr;
WHERE DELETED() <> .T.;
AND Exphdr.num_edif = thisform.combo1.value;
AND Exphdr.periodo >= mes2;
AND Exphdr.periodo <= mes3;
AND Exphdr.rubro <> SPACE(30);
AND Exphdr.rubro <> "Rendi";
GROUP BY Exphdr.periodo, Exphdr.rubro;
ORDER BY Exphdr.periodo, Exphdr.rubro;
INTO CURSOR SYS(2015);
NOCONSOLE
DO "C:\ARCHIVOS DE PROGRAMA\MICROSOFT VISUAL STUDIO\VFP98\VFPXTAB.PRG"
with "c:\windows\temp\balance.dbf", .F., .F., .T., 1, 2, 3, .T., 0,

Espero me puedas dar una mano

Mariano Donaldson

Buenos Aires, Argentina

"Ricardo Passians" escribió
en el mensaje news:
Da un ejemplo de las tablas que usas y la salida que deseas para entender
mejor el punto.



"Mariano Donaldson" wrote in message
news:uWD$#
> Hola a todos
>
> tengo una consulta SQL con la cual se genera una tabla cruzada, pero lo
que
> me sale como columnas, yo querría que me saliera como filas y viceversa.
> ¿Cómo hay que hacer? Estuve probando de todo y no me salió. Seguro es


una
> pavada
>
> Gracias a quien pueda y quiera darme una mano
>
> Mariano Donaldson
>
> Buenos Aires, Argentina
>
>


Respuesta Responder a este mensaje
#3 Mariano Donaldson
28/07/2003 - 02:52 | Informe spam
Ricardo:

Gracias, realmente te lo agradezco muchísimo
me parece un poquito retorcidopero bueh.!!!...jajaja
tengo que analizarlo y voy a probarlo

En un par de días te cuento cómo fue
Gracias una vez más

Mariano Donaldson

Buenos Aires, Argentina


"Antonio Rodriguez R." escribió en el mensaje
news:

Ricardo parece ser el maestro de las soluciones ingeniosas. ..

Qué es lo que comes amigo? :)




"Ricardo Passians" wrote


in
message news:
> Prueba algo asi (es solo una idea), si es que entendi bien:
>
> Quieres ver algo asi:
> Mes2 Mes2+1 Mes2+2Mes3
> Rubro1
> Rubro 2
> ..
> ..
>
> yo lo haria asi (asumiendo que Exphdr.periodo es un campo numerico con


un
> mes, si no es asi habria que
> modificar el asunto pero esa es la idea)
>
> 1)
> && llenaria columnas variables a una variable tipo caracter
>
> m.columnas='Exphdr.rubro' &&primera columna
>
> for m.i=mes2 to mes3 &&agregar una columna para cada mes del rango
> m.columnas=m.columnas+ ;
> ', SUM(iif(Exphdr.periodo=' + str(m.i, 2) +
',Exphdr.monto,00000000.00))
> as ' +cmonth(date(2000,M.I,1))
> && con eso se crea una columna con el nombre del mes, puedes


generalizarla
> mas aun
> endfor
>
> 2)
> &&ejecuto el select. Ve el & en columnas = macro sustitucion .. El
> deleted() que tenia no es necesario si SET DELE es ON
>
>
> SELECT &columnas ;
> FROM exphdr;
> WHERE Exphdr.num_edif = thisform.combo1.value;
> AND between(Exphdr.periodo, mes2, mes3) ;
> AND !empty(Exphdr.rubro) ;
> AND Exphdr.rubro <> "Rendi";
> GROUP BY Exphdr.rubro ;
> INTO CURSOR SYS(2015);
> NOCONSOLE
>
>
> && recuerda que solo una idea. Puede mejorarse y/o generalizarse aun mas
>
> Avisame si es eso lo que querias.
>
>
>
>
> "Mariano Donaldson" wrote in message
> news:#
> > Ricardo:
> >
> > Es una única tabla:
> > En ella tengo detallado los gastos de un edificio discriminados por
rubro,
> > lo que hago con la consulta SQL es averiguar cuánto se gastó por cada
> rubro
> > en cada mes, pero me tira los rubros como columnas (cortándome los
nombres
> > de los campos a 10 caracteres) y los meses como filas.
> > Yo necesitaría que salieran los meses como columnas y los rubros de
gastos
> > como filas.
> >
> > SELECT Exphdr.periodo, Exphdr.rubro, SUM(Exphdr.monto);
> > FROM exphdr;
> > WHERE DELETED() <> .T.;
> > AND Exphdr.num_edif = thisform.combo1.value;
> > AND Exphdr.periodo >= mes2;
> > AND Exphdr.periodo <= mes3;
> > AND Exphdr.rubro <> SPACE(30);
> > AND Exphdr.rubro <> "Rendi";
> > GROUP BY Exphdr.periodo, Exphdr.rubro;
> > ORDER BY Exphdr.periodo, Exphdr.rubro;
> > INTO CURSOR SYS(2015);
> > NOCONSOLE
> > DO "C:\ARCHIVOS DE PROGRAMA\MICROSOFT VISUAL
STUDIO\VFP98\VFPXTAB.PRG"
> > with "c:\windows\temp\balance.dbf", .F., .F., .T., 1, 2, 3, .T., 0,
> >
> > Espero me puedas dar una mano
> >
> > Mariano Donaldson
> >
> > Buenos Aires, Argentina
> >
> > "Ricardo Passians"
> escribió
> > en el mensaje news:
> > > Da un ejemplo de las tablas que usas y la salida que deseas para
> entender
> > > mejor el punto.
> > >
> > >
> > >
> > > "Mariano Donaldson" wrote in message
> > > news:uWD$#
> > > > Hola a todos
> > > >
> > > > tengo una consulta SQL con la cual se genera una tabla cruzada,


pero
> lo
> > > que
> > > > me sale como columnas, yo querría que me saliera como filas y
> viceversa.
> > > > ¿Cómo hay que hacer? Estuve probando de todo y no me salió. Seguro
es
> > una
> > > > pavada
> > > >
> > > > Gracias a quien pueda y quiera darme una mano
> > > >
> > > > Mariano Donaldson
> > > >
> > > > Buenos Aires, Argentina
> > > >
> > > >
> > >
> > >
> >
> >
>
>


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