Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Problema con SUM en MYSQL al hacer el query (https://www.clubdelphi.com/foros/showthread.php?t=42855)

desve 24-04-2007 19:27:17

Problema con SUM en MYSQL al hacer el query
 
Hola, Antes que nada un saludo a todos.


Queria pedir su ayuda ya que me encuentro con el siguiente problema y no he podido resolverlo de ninguna manera y ya tengo un rato tratando de diferentes formas.


EL problema es el siguiente.

Tengo el siguiente codigo SQL que hace referencia una tabla de comprobaciones de gastos.

Código SQL [-]
size="1">
SELECT sum( cantidad ) AS depositados
FROM comprobaciones c
WHERE c.id_tipo_mov =1
AND c.id_personal = 'chi1124';

el cual me funciona perfectamente sobre phpmyadmin.




pero al meterlo dentro de la propiedad sql de un adoquery, con el que estoy trabajando mysql.....





surge el siguiente problema... me dice que la operacion en varios pasos genero errores, que compruebe....



El detalle es que quitandole el SUM de la consulta me funciona perfectamente, pero yo necesito utilizar el sum, ya intente con mayusculas, minusculas, espacios en diferentes lugares entre los parentesis, etc y no me trabaja.

Anteriormente tuve un problema parecido con una funcion UPPER, pero esta me funciono acomodando espacios tal como lo intente en este caso pero no me trabaja, por lo cual pido su valiosa ayuda si alguien ha tenido algun problema parecido, o sabe como resolverlo.

Caral 24-04-2007 19:31:38

Hola desve
Aqui lo unico que se me ocurre pensar en el el tipo de campo
c.id_tipo_mov , es numerico ?
c.id_personal , lo defines como un campo string o texto, segun la sentencia sql.
Bueno podria estar por ese lado el problema.
Saludos

desve 24-04-2007 19:40:20

Hola
 
Esta es la estructura de la tabla.


id_personal varchar(8)
fecha date
id_tipo_mov int(11)
cantidad int(11)



Aqui el detalle creo yo es un poco extraño, ya que desde phpmyadmin corre perfecta la consulta y en delphi exactamente la misma consulta no corre.

Caral 24-04-2007 19:50:52

Hola
Aqui sigo sin entender que hace la c marcada en rojo:
Código SQL [-]
size="1">
SELECT sum( cantidad ) AS depositados
FROM comprobaciones c
WHERE c.id_tipo_mov =1
AND c.id_personal = 'chi1124';
Me explicas:confused: :)
Saludos

desve 24-04-2007 19:56:31

esta C esta ahi por que realmente este era un subquery de una consulta mas compleja, esta trabaja como ALIAS, donde hacia un sum a los depositos, y otro a las comprobaciones.

Esto es algo que se me olvido quitar, pero que realmente no afecta en nada.

Para enriquecer el comentario....


Esto no funciona directamente sobre el ADOQUERY.... pero si funciona sobre PHP MYADMIN

Código SQL [-]
SELECT SUM(cantidad)
FROM comprobaciones
WHERE id_tipo_mov=1
AND id_personal = 'chi1124';


Esto si funciona perfectamente sobre ADOQUERY y sobre PHP MYADMIN

Código SQL [-]
SELECT cantidad
FROM comprobaciones
WHERE id_tipo_mov=1
AND id_personal = 'chi1124';

Caral 24-04-2007 20:02:12

Hola
Bueno aqui ya no me queda otra que pensar en comillas:
Código SQL [-]
size="1">
SELECT sum( cantidad ) AS depositados
FROM comprobaciones c
WHERE c.id_tipo_mov =1
AND c.id_personal = "chi1124";
Algunas bases de datos como access no reconocen ciertos string sin doble comilla.
No se prueba
Saludos

desve 24-04-2007 20:19:43

hey
 
Mira no se si me pueda explicar pero, la sintaxis basica no es el problema,,,,, no si si estes leyendo el codigo ke estoy escribiendo, las comillas no son el problema ya que funcionan sin el sum y con el sum no funcionan.

voy mas a que pudiese estar yo equivocado en alguna otra cosa, por que tambien dentro de este desarrollo me han salido algunos errores, como que las funciones SUM o UPPER no existen.

La conexion con mysql la hago por medio de ODBC

con la siguiente conection string.


Provider=MSDASQL.1;Persist Security Info=False;User ID=remoto;Data Source=LNXBD;Extended Properties="DATABASE=lnxbd;DSN=LNXBD;OPTION=3;PORT=0;SERVER=192.168.1.84;UID=remoto"



creo yo que pudiera ser mas factible un problema por ese lado, aunque lo dudo.

Agradezco tu ayuda amigo, pero creeme que el detalle en este caso no va a ser una comilla, o una C que sobra, por que yo ya pase un par de horas tratando de diferentes maneras.

ADEMAS DE QUE MENCIONE QUE SI FUNCIONA EN MYSQL PERO EN DELPHI NO.

Lo que lleva a pensar que es algun problema de driver o conexion creo yo entre mysql y delphi, lo que en ciertos casos lleva a no encontrar las funciones o que supongo yo deben estar guardadas por librerias, etc.

Caral 24-04-2007 20:42:42

Hola
Bueno la verdad no me convence la teoria de la conexion, delphi para mi tampoco tiene nada que ver, nada mas opino.
La verdad no me gusta la conexion con odbc a mysql la veo lenta, prefiero usar otro componente como zeos, facil, rapido, efectivo y simple.
Si piensas que es la conexion usa otro medio para conectarte, No?
Humilde opinion.
Saludos

desve 25-04-2007 18:20:19

Pos
 
pos ni hablar, tuve que hacer un query de las filas que queria y hacer un barrido a pie para sumar los valores.


de cualquier manera si alguien sabe la razon de este problema le agradeceria posteara.

Hasta luego.


La franja horaria es GMT +2. Ahora son las 02:01:26.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi