FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Función SUM Pasarlo a un componente
Buenos días, estoy tratando de obtener la suma de un campo llamado Importe y pasar el resultado a un Label,
pero me dice que mi variable no existe. Mi código es el siguiente
Me da el siguiente error |
#2
|
||||
|
||||
Prueba con:
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#4
|
||||
|
||||
Pues sumará 1, ¿no?
En eso no podemos ayudar sin más información y datos de ejemplo.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
|||
|
|||
Gracias por contestar, tengo una tabla con la siguiente estructura
y lo que necesito es obtener el total del campo importe y pasarlo a un Label Gracias, muy agradecido |
#6
|
||||
|
||||
Si abres el phpmyadmin, o el que uses, y tecleas:
¿Qué te devuelve?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#7
|
|||
|
|||
Quizas sea por la mayúsculas o minúsculas en los nombres de tablas y campos, hay algunos servidores que estan configurados asi, distinguen eso y me paso y debí colocar tal como esta creado en el servidor, revisa eso.
Última edición por marco3k fecha: Hace 4 Semanas a las 17:03:50. |
#8
|
|||
|
|||
es que el AS Total implica que lo dejara creo, en una variable Total que no tienes definida
yo por ejemplo para un Stored Procedure que hice hace 2 dias es asi, puede que te arroje algo de luz porque es algo parecido Código:
DELIMITER $$ USE `BASE_DE_DATOS_A_USAR`$$ DROP PROCEDURE IF EXISTS `Stardust_Players_Conected`$$ CREATE DEFINER=`USUARIOBD`@`%` PROCEDURE `Stardust_Players_Conected`() BEGIN DECLARE suma_total DECIMAL(10, 0); -- Sumar los valores de campo_a_sumar cuando condicion_campo es 1 SELECT COALESCE(SUM(status_online), 0) INTO suma_total FROM STARDUST_BDUsers WHERE status_online = 1; -- Insertar el resultado en la tabla resultados_suma TRUNCATE TABLE STARDUST_TOTAL_PLAYERS_CONECTADOS; INSERT INTO STARDUST_TOTAL_PLAYERS_CONECTADOS (NUM_PLAYERS, Fecha) VALUES (suma_total, CURDATE()); END$$ DELIMITER ; si "suma_total" es con decimales lo declaramos (por ejemplo con 2 decimales) como DECLARE suma_total DECIMAL(10, 2); el COALESCE es por si no tiene valor ese campo o registro (NULL) creo que lo pone como 0 seria algo asi para pasarlo al TLabel o TEdit Código:
void PasarSumaTotalAMyLabel() { // Supongamos que tienes un componente TMyQuery llamado MyQuery MyQuery->SQL->Clear(); MyQuery->SQL->Add("SELECT SUM(Importe) INTO Total FROM CuentasPorCobrar"); // Tu consulta SQL MyQuery->Open(); // Ejecuta la consulta // Verificamos si hay resultados if (!MyQuery->Eof) { // Extraer el valor de 'Total' double sumaTotal = MyQuery->FieldByName("Total")->AsFloat; // Convertir el valor a texto y asignarlo al TLabel Label1->Caption = FloatToStr(Total); } else { Label1->Caption = "No hay resultados"; // En caso de no obtener resultados } MyQuery->Close(); } Este tipo de consulta devuelve directamente la suma de un campo llamado campo en la tabla tu_tabla, y puedes extraer el valor de suma_total directamente desde el conjunto de resultados sin declarar nada en SQL. Código:
// Asumiendo que tienes un componente TMyQuery llamado MyQuery MyQuery->SQL->Clear(); MyQuery->SQL->Add("SELECT SUM(campo) AS suma_total FROM tu_tabla"); // La consulta SQL MyQuery->Open(); // Ejecuta la consulta y abre el conjunto de resultados if (!MyQuery->Eof) { // Asegurarse que hay resultados double sumaTotal = MyQuery->FieldByName("suma_total")->AsFloat; // Recuperar el resultado de la suma Label1->Caption = FloatToStr(sumaTotal); // Mostrar en el Label } Última edición por navbuoy fecha: Hace 3 Semanas a las 13:07:08. |
#9
|
|||
|
|||
y tu tienes en el SELECT SUM(importe) con minusculas y creo que en vez de AS deberias poner INTO
creo que lo que buscas se parece a ESTO: (si no funciona con AS prueba con INTO) Código:
procedure PasarSumaTotalAMyLabel; begin // Limpiar el SQL y añadir la consulta MyQuery.SQL.Clear; MyQuery.SQL.Add('SELECT SUM(Importe) AS Total FROM CuentasPorCobrar'); // Tu consulta SQL MyQuery.Open; // Ejecuta la consulta // Verificamos si hay resultados if not MyQuery.Eof then begin // Extraer el valor de 'Total' Label1.Caption := FloatToStr(MyQuery.FieldByName('Total').AsFloat); end else begin Label1.Caption := 'No hay resultados'; // En caso de no obtener resultados end; MyQuery.Close; end; Última edición por navbuoy fecha: Hace 3 Semanas a las 13:19:43. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Seleccionar un Dato en un DBGrid y Pasarlo a Otro. | hondaalberto | Varios | 3 | 21-12-2010 22:46:27 |
Funcion o componente para calcular el md5? | flystar | Varios | 8 | 05-08-2010 14:56:17 |
Funcion del componente Gauge | RockFaster | Varios | 1 | 24-09-2008 00:23:42 |
Programa al pasarlo a otro pc | mancurnino | Varios | 5 | 27-02-2008 00:12:53 |
Asignar una tecla de funcion a un componente | CoCaInE | Varios | 2 | 19-06-2007 11:05:08 |
|