Ir al contenido


Foto

Creando porcentajes


  • Por favor identifícate para responder
48 respuestas en este tema

#21 eduarcol

eduarcol

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.483 mensajes
  • LocationVenezuela

Escrito 01 diciembre 2008 - 07:47

a eso le veo un pequeño problemita, ya que la suma debe ejecutarse antes de consultar cada registro, yo propongo esto:



sql
  1. SELECT ((Campo * 100) / P.Porc) AS porcentaje FROM Tabla, (SELECT SUM(Campo) AS Porc FROM tabla) P


  • 0

#22 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 01 diciembre 2008 - 07:59

¿Y funciona así separado por un coma?  *-)
  • 0

#23 eduarcol

eduarcol

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.483 mensajes
  • LocationVenezuela

Escrito 01 diciembre 2008 - 08:07

a la perfeccion, probado en IbExpert version personal.
  • 0

#24 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 01 diciembre 2008 - 08:14

Vaya, pues otra cosa que aprendo, gracias eduardo.

Saludos.
  • 0

#25 eduarcol

eduarcol

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.483 mensajes
  • LocationVenezuela

Escrito 01 diciembre 2008 - 08:18

Realmente alli lo que se hace es que el select dentro del select se convierte en una tabla P, esta solo contiene un registro que sera la sumatoria del campo, se une a la tabla que se esta consultando agregando la sumatoria como un campo mas en el registro.
  • 0

#26 felipe

felipe

    Advanced Member

  • Moderador
  • PipPipPip
  • 3.283 mensajes
  • LocationColombia

Escrito 01 diciembre 2008 - 09:32

Hola,
A ver si entiendo, lo que ustedes me aconsejan es que cree el porcentaje directamente desde la consulta  *-)?...
  • 0

#27 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 01 diciembre 2008 - 09:39

Hola,
A ver si entiendo, lo que ustedes me aconsejan es que cree el porcentaje directamente desde la consulta  *-)?...


Correcto Felipe, lo que te da Eduarcol lo puedes adaptar con tu consulta.

Saludos.
  • 0

#28 felipe

felipe

    Advanced Member

  • Moderador
  • PipPipPip
  • 3.283 mensajes
  • LocationColombia

Escrito 01 diciembre 2008 - 10:18

Hola,
En parte si... y en parte no; ¿porqué? ya que quiero mantener la información tal cual como me la arroja la consulta, pero si me servirá de base para hacer la operación por código  ;)... aunque... la consulta aún me está retornando un solo resultado y en el IBExpert si me los muestra todos  :|???...
  • 0

#29 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 01 diciembre 2008 - 10:43

Bueno, el problema tuyo viene del Fieldcount, está mal porque te cuenta los campos que tiene la tabla y no los datos, en este caso sólo tienes un campo, por lo tanto deber RecordCount ;).

Saludos.
  • 0

#30 felipe

felipe

    Advanced Member

  • Moderador
  • PipPipPip
  • 3.283 mensajes
  • LocationColombia

Escrito 01 diciembre 2008 - 10:59

Bueno, el problema tuyo viene del Fieldcount, está mal porque te cuenta los campos que tiene la tabla y no los datos, en este caso sólo tienes un campo, por lo tanto deber RecordCount ;).

Saludos.

Lo raro era que antes lo había probado asi y me daba error  :|???... pero tal parece que ya quiere funcionar... ^o|

Gracias...
  • 0

#31 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.256 mensajes
  • LocationMéxico

Escrito 01 diciembre 2008 - 11:11

Hola

Pues ya que te funcionó, creo que seria bueno optimizar el código :D :p



delphi
  1. var
  2.     v_datos,I: Integer;
  3. begin
  4.   with SQLQuery1 do begin
  5.     Close;
  6.     SQL.Clear;
  7.     SQL.Add('select valores from tabla');
  8.     Open;
  9.     v_datos := 0;
  10.     for I := 0 to recordcount - 1 do  begin
  11.         v_datos := v_datos + Fields[0].AsInteger;
  12.         Next;
  13.     end;
  14.   end;
  15. end;



Salud OS
  • 0

#32 Fenareth

Fenareth

    Advanced Member

  • Moderador
  • PipPipPip
  • 3.486 mensajes
  • LocationMexico City

Escrito 01 diciembre 2008 - 11:22

Bueno, el problema tuyo viene del Fieldcount, está mal porque te cuenta los campos que tiene la tabla y no los datos, en este caso sólo tienes un campo, por lo tanto deber RecordCount ;).

Saludos.


Bueno, el problema tuyo viene del Fieldcount, está mal porque te cuenta los campos que tiene la tabla y no los datos, en este caso sólo tienes un campo, por lo tanto deber RecordCount ;).

Saludos.

Lo raro era que antes lo había probado asi y me daba error  :|???... pero tal parece que ya quiere funcionar... ^o|

Gracias...


Odio decir te lo dije pero te lo dije, jajajajajaja, me desacreditas  :(  :p  :D  :D  ;)  (h)
  • 0

#33 eduarcol

eduarcol

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.483 mensajes
  • LocationVenezuela

Escrito 01 diciembre 2008 - 01:12

no entendi lo de conservar los valores?, sera que esto te sirve?



sql
  1. SELECT Campo AS Valor, ((Campo * 100) / P.Porc) AS porcentaje FROM Tabla, (SELECT SUM(Campo) AS Porc FROM tabla) P


  • 0

#34 felipe

felipe

    Advanced Member

  • Moderador
  • PipPipPip
  • 3.283 mensajes
  • LocationColombia

Escrito 01 diciembre 2008 - 01:30

Hola

Pues ya que te funcionó, creo que seria bueno optimizar el código :D :p



delphi
  1. var
  2.     v_datos,I: Integer;
  3. begin
  4.   with SQLQuery1 do begin
  5.     Close;
  6.     SQL.Clear;
  7.     SQL.Add('select valores from tabla');
  8.     Open;
  9.     v_datos := 0;
  10.     for I := 0 to recordcount - 1 do  begin
  11.         v_datos := v_datos + Fields[0].AsInteger;
  12.         Next;
  13.     end;
  14.   end;
  15. end;



Salud OS

Y no faltaría esto: 

delphi
  1. SetLength (v_datos, total_datos);

???...


Bueno, el problema tuyo viene del Fieldcount, está mal porque te cuenta los campos que tiene la tabla y no los datos, en este caso sólo tienes un campo, por lo tanto deber RecordCount ;).

Saludos.


Bueno, el problema tuyo viene del Fieldcount, está mal porque te cuenta los campos que tiene la tabla y no los datos, en este caso sólo tienes un campo, por lo tanto deber RecordCount ;).

Saludos.

Lo raro era que antes lo había probado asi y me daba error  :|???... pero tal parece que ya quiere funcionar... ^o|

Gracias...


Odio decir te lo dije pero te lo dije, jajajajajaja, me desacreditas   :(  :p  :D  :D  ;)  (h)

Jajajajajaja... si es verdad Fena, pero cuando tu me lo dijiste no me funcionó... ahora si  :p pero Gracias  :D

no entendi lo de conservar los valores?, sera que esto te sirve?



sql
  1. SELECT Campo AS Valor, ((Campo * 100) / P.Porc) AS porcentaje FROM Tabla, (SELECT SUM(Campo) AS Porc FROM tabla) P


Gracias por el Query, lo probaré... y en cuanto a conservar los valores es para tener los datos reales de la consulta por si los necesitara y no tener que hacerla de nuevo  ;)
  • 0

#35 eduarcol

eduarcol

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.483 mensajes
  • LocationVenezuela

Escrito 01 diciembre 2008 - 01:34

bueno, con la consulta que te paso conservas los valores y los porcentajes. :D
  • 0

#36 felipe

felipe

    Advanced Member

  • Moderador
  • PipPipPip
  • 3.283 mensajes
  • LocationColombia

Escrito 01 diciembre 2008 - 01:39

bueno, con la consulta que te paso conservas los valores y los porcentajes. :D

Ok... la probaré... espero me funcione  ;)
  • 0

#37 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 01 diciembre 2008 - 03:47

... espero me funcione  ;)


:o ¿dudas de la calidad de servicio de Eduarcol?  :o
  • 0

#38 felipe

felipe

    Advanced Member

  • Moderador
  • PipPipPip
  • 3.283 mensajes
  • LocationColombia

Escrito 01 diciembre 2008 - 04:04


... espero me funcione  ;)


:o ¿dudas de la calidad de servicio de Eduarcol?  :o

:D :D :D... pues no se de que servicios me hables  ^o| ¿que te dice la experiencia?... :p

Ahora en serio... el query me arrojo un error en el select embebido (Token Unknow)... trabajo en ello para ajustarlo  :D
  • 0

#39 eduarcol

eduarcol

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.483 mensajes
  • LocationVenezuela

Escrito 01 diciembre 2008 - 04:42

con que version trabajas ??
  • 0

#40 felipe

felipe

    Advanced Member

  • Moderador
  • PipPipPip
  • 3.283 mensajes
  • LocationColombia

Escrito 01 diciembre 2008 - 05:15

Deja que lo pruebe en casa... en este equipo tengo Firebird 1.5...
  • 0