Resultados con sql
Hola experto tengo este codigo funciona muy bien pero en la tabla creada estoy agregando campos de porcentaje lo que necesito es multiplicar la columna total0 *100/ el total de la misma columna le presento un ejemplo de los resultado. Gracias Experto
tarjetas total porcentaje
tarjeta1 80 34.0
tarjeta2 65 27.6
tarjeta3 90 38.2
total 235 100.0
wini = thisform.text1.value
wfin = thisform.text2.value
thisform.grid1.recordsource = ''
thisform.grid1.value = ''
thisform.grid1.REFRESH
select * from consultas ;
where betw(dtoc(consultas.cex_fecha,1),dtoc(wini,1),dtoc(wfin,1)) ;
into cursor rango
select pr.pro_codigo,ra.sed_codigo,count(pc.pac_hc) as total,ra.* ;
from pacientes pc, programas pr, rango ra ;
where ra.pac_hc = pc.pac_hc and pc.pro_codigo=pr.pro_codigo ;
group by 1,2 order by 1,2 ;
into cursor compara
select distin(pro_codigo) as pro_codi, 0 as total0, 0 as porce0, ;
0 as total1, 0 as porce1, ;
0 as total2, 0 as porce2, ;
0 as total3, 0 as porce3 ;
from compara into table tabla
sele tabla
go top
scan
xprograma = allt(pro_codi)
sele compara
do while allt(pro_codigo) = xprograma
do case
case sed_codigo_a = '0'
xsede = '0'
xtotal0 = total
case sed_codigo_a = '1'
xsede = '1'
xtotal1 = total
case sed_codigo_a = '2'
xsede = '2'
xtotal2= total
case sed_codigo_a = '3'
xsede = '3'
xtotal3= total
endcase
sele tabla
do case
case xsede = '0'
repla total0 with xtotal0
case xsede = '1'
repla total1 with xtotal1
case xsede = '2'
repla total2 with xtotal2
case xsede = '3'
repla total3 with xtotal3
endcase
sele compara
skip
endd
sele tabla
ends
select iif(seek(pro_codi,'programas','pro_codigo'),programas.pro_nombre,' '),* ;
from tabla order by 1 into cursor final
thisform.grid1.recordsource = 'final'
thisform.grid1.REFRESH
tarjetas total porcentaje
tarjeta1 80 34.0
tarjeta2 65 27.6
tarjeta3 90 38.2
total 235 100.0
wini = thisform.text1.value
wfin = thisform.text2.value
thisform.grid1.recordsource = ''
thisform.grid1.value = ''
thisform.grid1.REFRESH
select * from consultas ;
where betw(dtoc(consultas.cex_fecha,1),dtoc(wini,1),dtoc(wfin,1)) ;
into cursor rango
select pr.pro_codigo,ra.sed_codigo,count(pc.pac_hc) as total,ra.* ;
from pacientes pc, programas pr, rango ra ;
where ra.pac_hc = pc.pac_hc and pc.pro_codigo=pr.pro_codigo ;
group by 1,2 order by 1,2 ;
into cursor compara
select distin(pro_codigo) as pro_codi, 0 as total0, 0 as porce0, ;
0 as total1, 0 as porce1, ;
0 as total2, 0 as porce2, ;
0 as total3, 0 as porce3 ;
from compara into table tabla
sele tabla
go top
scan
xprograma = allt(pro_codi)
sele compara
do while allt(pro_codigo) = xprograma
do case
case sed_codigo_a = '0'
xsede = '0'
xtotal0 = total
case sed_codigo_a = '1'
xsede = '1'
xtotal1 = total
case sed_codigo_a = '2'
xsede = '2'
xtotal2= total
case sed_codigo_a = '3'
xsede = '3'
xtotal3= total
endcase
sele tabla
do case
case xsede = '0'
repla total0 with xtotal0
case xsede = '1'
repla total1 with xtotal1
case xsede = '2'
repla total2 with xtotal2
case xsede = '3'
repla total3 with xtotal3
endcase
sele compara
skip
endd
sele tabla
ends
select iif(seek(pro_codi,'programas','pro_codigo'),programas.pro_nombre,' '),* ;
from tabla order by 1 into cursor final
thisform.grid1.recordsource = 'final'
thisform.grid1.REFRESH
1 respuesta
Respuesta de Víctor Arturo Mercado Fernández
1