Ver Mensaje Individual
  #10  
Antiguo 26-06-2012
Nicolas_2011 Nicolas_2011 is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 59
Reputación: 13
Nicolas_2011 Va por buen camino
Cita:
Empezado por movorack Ver Mensaje
No veo porque la consulta la debas hacer uniendo a la tabla factura_compra ni a la de producto. con la siguiente sentencia ya obtendrias el resultado de total.

Código SQL [-]SELECT SUM (Subtotal) AS total FROM detalle_factura WHERE detalle_factura.id_fc like :fact


No se porque usas un like, esto podría traerte valores incorrectos. mejor busca el valor exacto.

El problema de esta solución (solo la menciono) es que debes ir por cada inserción y/o actualización a la DB a obtener un resultado que en teoría ya tienes en memoria. generando una carga innecesaria. Para efectos del ejercicio que estás realizando es funcional y no genera ningun problema. pero cuando se trata de muchas estaciones, redes extensas y demás. Detalles como estos hacen diferencia.

Otra posible solución que te planteaba es recorrer el dataset para calcular el resultado. Una función como esta puede servir.

Código Delphi [-]function ObtTotal(pDataSet : TDataSet; pCampTot : string) : Extended; var lResult : Extended; lBookMark : TBookmark; begin lResult := 0; lBookMark := pDataSet.GetBookmark; try pDataSet.First; while not pDataSet.Eof do begin try try lResult := lResult + pDataSet.Fields.FieldByName(pCampTot).AsFloat; finally pDataSet.Next end; except Result := -1; end; end; finally if pDataSet.BookmarkValid(lBookMark) then pDataSet.GotoBookmark(lBookMark); Result := lResult; end; end;
Muy bien estudiare esa posible solicucion ya que varias cosas de las planteaste no manejo. de todas formas entienda o no, me sirva o no. muchas gracias por tu tiempo!
Responder Con Cita