Como hacer un reporte en base a días del 1 al 31 y colocar los datos en la columna de cada día

61 views
Skip to first unread message

rudolf heiner

unread,
Jan 20, 2017, 12:10:36 AM1/20/17
to Comunidad de Visual Foxpro en Español
saludos amigos foxeros, les traigo una inquietud, como podría hacer un reporte que me genere en base a los días que irían en la parte superior y debajo de cada día poner cantidades en el reporte como se ve el select, la verdad que no se como hacerlo, anexo foto de la tabla con los datos.
no se que mas datos les podría mandar, haber si me dan una mano.

bd = SQLConnect("Medident")

vempresa = "1"
vmes = "1"
vanho = "2016"

SQLEXEC(bd," SELECT clasi,clasificacion::character varying(150),subclasi::character varying(150),subclasi2::character varying(150), "+;
" sum(efectivoventa) as efectivoventa,sum(chequeventa) as chequeventa,sum(tarjedebitoventa) as tarjedebitoventa, "+;
" sum(tarjecreditoventa) as tarjecreditoventa,sum(dolarventa) as dolarventa,sum(efectivocompra) as efectivocompra,"+;
" sum(chequecompra) as chequecompra,sum(egresos) as egresos,dia,mes,anho "+;
" FROM caja.financiero where union_emp_id_union =?vempresa and mes =?vmes and anho =?vanho "+;
" group by clasi,subclasi2,dia,mes,anho,fecha_aper,clasificacion,subclasi ORDER BY fecha_aper asc","infodiaf")

SELECT infodiaf
BROWSE

gracias,
rudolf heiner.
Datos en la Tabla.png

ZeRoberto

unread,
Jan 20, 2017, 12:12:44 AM1/20/17
to publicesvfoxpro
Que base de datos es?

Jorge Kiernan

unread,
Jan 20, 2017, 7:47:21 AM1/20/17
to publicesvfoxpro
Buscas hacer una columna por cada dia del mes, o sea 31 columnas.
¿pero que es lo que define cada fila? porque veo varios importes (TC, TD, pesos, u$s, etc) y varios campo de clase y subclase 
De todos modos, podrías pensar la solución pasando por un 2do select , ponele agrupado por clase y subclase, y con 31 columnas definidas en funcion del dia.
Algo asi como 
sele clasi, subclasi2, iif(dia = 1,efectivoventa,0) as efectivo01, iif(dia = 2,efectivoventa,0) as efectivo02, iif(dia = 3,efectivoventa,0) as efectivo03   .... asi las 31 columnas
con order by clasi, subclasi2 group by clasi, subclasi2

Ponele que queres un primer renglon de efectivo, otros de cheque, otro de tarjeta de credito, y asi, podrías resolver uniendo una serie de select por cada tipo de valor 

sele clasi, subclasi2, PADR('EFECTIVO',20)  as tipovalor, iif(dia = 1,efectivoventa,0) as importe01, iif(dia = 2,efectivoventa,0) as importe02, iif(dia = ....
esto en union con otro similar para cheque 
sele clasi, subclasi2, PADR('CHEQUE',20)  as tipovalor, iif(dia = 1,chequeventa,0) as importe01, iif(dia = 2,chequeventa,0) as importe02, iif(dia = ....
y así sucesivamente

El 20 de enero de 2017, 2:12, ZeRoberto <zero...@gmail.com> escribió:
Que base de datos es?

mapner

unread,
Jan 20, 2017, 8:49:21 AM1/20/17
to Comunidad de Visual Foxpro en Español
Tienes que hacer una "tabla cruzada" o bien automatizar Excel y generar una Tabla Dinámica (sería lo más sencillo)

Saluidos

rudolf heiner

unread,
Jan 20, 2017, 9:57:48 AM1/20/17
to Comunidad de Visual Foxpro en Español
Saludos JKiernan,
como podria automatizar a excel, sera que me das la mano para poderlo hacer por favor,
quedo de ti,
rudolf heiner.

mapner

unread,
Jan 20, 2017, 10:01:04 AM1/20/17
to Comunidad de Visual Foxpro en Español

Rudolf Johann Heiner

unread,
Jan 20, 2017, 10:08:01 AM1/20/17
to mapner, Comunidad de Visual Foxpro en Español

Gracias mapner,

estare fijandome Como lo hago,

saludos,

rudolf Heiner.

 

Enviado desde Correo para Windows 10

Reply all
Reply to author
Forward
0 new messages