PDA

Ver la Versión Completa : Obtener resultado de una suma (SQL)


radge
18-08-2008, 15:10:26
cadenaSQL := 'Select sum(total) from Albaran';
qry_total.SQL.add(cadenaSQL);
qry_total.open;
TotalAlbara := qry_total.FieldByName('sum(Total)').asString;
Qry_total.Close;



Buenas tengo este codigo que intengo obtener la suma de una sql , hago el sql pero despues intento recuperarlo de esta forma y no me deja se os ocurre alguna forma ?¿

gracias , radge

Caro
18-08-2008, 15:22:39
Hola radge, puedes darle un alias a tu sum y recuperar por ese alias o utilizar Fields en vez de FieldByName.


cadenaSQL := 'Select sum(total) as suma from Albaran';

TotalAlbara := qry_total.FieldByName('suma').asString;
//o
TotalAlbara := qry_total.Fields[0].asString;


Slauditos

radge
18-08-2008, 15:30:07
Eso tbien lo habia probado , disculpa por no haver lo dicho .
La variabla "totalalbara" la tengo del tipo string que no lo havia dicho tampoco.


Y me da el siguiente error

Invalid Use of Keyword.
Token : select
Line number : 6

Caro
18-08-2008, 15:54:37
Hola de nuevo radge, no hay problema si lo recuperas como cadena, estas seguro que la consulta que le pasas esta bien, porque de ambas formas si funciona, en tu codigo veo que añades la consulta con Add, deberías limpiar tu propiedad SQL cada vez que ejecutes tu consulta. Has probado la segunda forma, puedes hacer la prueba de colocar tu consulta sin ningun alias y recuperarlo con Fields.


qry_total.SQL.Clear;
cadenaSQL := 'Select sum(total) from Albaran';
qry_total.SQL.add(cadenaSQL);
qry_total.open;
TotalAlbara := qry_total.Fields[0].asString;


Saluditos

radge
18-08-2008, 16:10:16
http://i38.tinypic.com/s1ub1u.jpg


Eso he probado ... pero entonces me dice esto que raro....

Lo raro es que cojo el SQL lo pasteo en la sybase y lo ejecuta perfectamente.

look
18-08-2008, 16:16:13
http://i38.tinypic.com/s1ub1u.jpg


Eso he probado ... pero entonces me dice esto que raro....

Lo raro es que cojo el SQL lo pasteo en la sybase y lo ejecuta perfectamente.

no se si sea el problema, pero pareciera que no le asignaste la base de datos a la query en la propiedad databasename, no mas digo..

Caro
18-08-2008, 16:35:35
Como dice look ese error te da porque no te estas conectando a tu Base de Datos (propiedad DataBaseName), supongo que estas utilizando los componentes de la paleta BDE. Pero no entiendo, en el otro error que te daba, parecia que si te conectabas y había algun error en la consulta.

Saluditos

radge
19-08-2008, 12:14:41
Gracias por los mensajes anteriores al final lo arreglé.

Muchas gracias ,

radge