![]() |
![]() |
| Paypal | 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: 30-09-2024 a las 16: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: 05-10-2024 a las 12: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: 05-10-2024 a las 12: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 21:46:27 |
| Funcion o componente para calcular el md5? | flystar | Varios | 8 | 05-08-2010 13:56:17 |
| Funcion del componente Gauge | RockFaster | Varios | 1 | 23-09-2008 23:23:42 |
| Programa al pasarlo a otro pc | mancurnino | Varios | 5 | 26-02-2008 23:12:53 |
| Asignar una tecla de funcion a un componente | CoCaInE | Varios | 2 | 19-06-2007 10:05:08 |
|