
Mejorar Consulta mysql desde Vb.net
Publicado por Alfredo (9 intervenciones) el 03/08/2021 05:14:22
Amigos,
tengo una consulta desde VB. net para listar todo un mayor contable.. el cual contiene ::: columna ..datos ..../ debe/ haber/ saldo/.. pero informo un /saldo anterior/ que es calculado en una sub-consulta .. mi codigo es demasiado lento.. se demora entre 40 y 50 segundos y aveces más de 60 .. interrumpiendo el programa..
los datos son llevados al Crystal Report el cual me fabrica el formato del Mayor.
cómo podría mejorar esta consulta..???
Sql = "SELECT *, mov_debe, mov_haber, " & _
"(mov_debe - mov_haber) as saldo," & _
"(select sum(mov_debe - mov_haber) as Anterior from Movimiento_contable where org_rut='" & rut & "' and cen_codigo= C.cen_codigo and mov_fecha between '" & Format(Date0, "yyyy-MM-dd") & "' and '" & Format(Date1.Value.AddDays(-1), "yyyy-MM-dd") & "') as saldo_Anterior " & _
"FROM movimiento_contable INNER JOIN empresa on (empresa.org_rut = movimiento_contable.org_rut) " & _
" INNER JOIN centro_costo C on (C.cen_codigo = movimiento_contable.cen_codigo) and (C.org_rut = movimiento_contable.org_rut)" & _
" where movimiento_contable.ORG_RUT= '" & rut & "' and mov_fecha Between '" & Format(Date1.Value, "yyyy-MM-dd") & "' " & _
"AND '" & Format(Date2.Value, "yyyy-MM-dd") & "' order by mov_fecha,cen_codigo asc"
mi dato esperado es
datos..../ debe / haber / saldoDeLaLinea / saldoAnteriorDeLaCuenta-
gracias
tengo una consulta desde VB. net para listar todo un mayor contable.. el cual contiene ::: columna ..datos ..../ debe/ haber/ saldo/.. pero informo un /saldo anterior/ que es calculado en una sub-consulta .. mi codigo es demasiado lento.. se demora entre 40 y 50 segundos y aveces más de 60 .. interrumpiendo el programa..
los datos son llevados al Crystal Report el cual me fabrica el formato del Mayor.
cómo podría mejorar esta consulta..???
Sql = "SELECT *, mov_debe, mov_haber, " & _
"(mov_debe - mov_haber) as saldo," & _
"(select sum(mov_debe - mov_haber) as Anterior from Movimiento_contable where org_rut='" & rut & "' and cen_codigo= C.cen_codigo and mov_fecha between '" & Format(Date0, "yyyy-MM-dd") & "' and '" & Format(Date1.Value.AddDays(-1), "yyyy-MM-dd") & "') as saldo_Anterior " & _
"FROM movimiento_contable INNER JOIN empresa on (empresa.org_rut = movimiento_contable.org_rut) " & _
" INNER JOIN centro_costo C on (C.cen_codigo = movimiento_contable.cen_codigo) and (C.org_rut = movimiento_contable.org_rut)" & _
" where movimiento_contable.ORG_RUT= '" & rut & "' and mov_fecha Between '" & Format(Date1.Value, "yyyy-MM-dd") & "' " & _
"AND '" & Format(Date2.Value, "yyyy-MM-dd") & "' order by mov_fecha,cen_codigo asc"
mi dato esperado es
datos..../ debe / haber / saldoDeLaLinea / saldoAnteriorDeLaCuenta-
gracias
Valora esta pregunta


0