Ver Mensaje Individual
  #1  
Antiguo 29-08-2007
xterm xterm is offline
Registrado
 
Registrado: ago 2007
Posts: 7
Reputación: 0
xterm Va por buen camino
error en consulta sql

Bueno, primero que nada presentarme, soy un NOVATO en delphi (y en cierto modo en programación, pues hace mucho que no la toco, y vengo de Gambas (V.Basic). así como hace muchos años de nuestro amigo pascal y delphi3). y una vez presentado, ahí va mi consulta.

Estoy tratando de realizar una consulta acotada (un poco larga) con lazarus (el delphi para linux, por decir algo).
El tema es que llevo una semana entera leyendo foros y buscando información en san.google, y nada, no ecuentro el error por ningún lado.
La consulta es esta:
Código Delphi [-]
     dbinfocaja.SQL.Add('select CA0,CA22,SUM(CA10) AS UNIALB,SUM(CA12) AS UNITAR,');
     dbinfocaja.SQL.Add('SUM(CA13) AS IMPTAR,');
     dbinfocaja.SQL.Add('SUM(CA4)+SUM(CA6)-SUM(CA11)-SUM(CA13)+SUM(CA15)+SUM(CA16)-SUM(CA17)-SUM(CA18)-SUM(CA19)+SUM(CA20)+SUM(CA21)-SUM(CA23) AS TOTAL,');
     dbinfocaja.SQL.Add('SUM(CA4)+SUM(CA6)+SUM(CA15)+SUM(CA16)-SUM(CA17)-SUM(CA18)-SUM(CA19)+SUM(CA20)+SUM(CA21)-SUM(CA23) AS TTOTAL,');
     dbinfocaja.SQL.Add('SUM(CA15) AS SALDOINI,SUM(CA19) AS DEUDAS,SUM(CA21) AS ENTREGAS');
     dbinfocaja.SQL.Add(' from cajas0000');
     dbinfocaja.SQL.Add(' where  CA0 between '+QuotedStr(Edit19.Text));
     dbinfocaja.SQL.Add(' and '+QuotedStr(Edit20.Text));
     dbinfocaja.SQL.Add(' and CA22='+QuotedStr(ComboBox1.Text));
     dbinfocaja.SQL.Add(' GROUP BY CA0');
     dbinfocaja.ExecSQL;
He probado a poner el group antes que el where, en cuyo caso me lanza otro error, ahora postearé ambos. El uso de between para las fechas, lo saqué de este mismo foro, y el uso de quotedstr igual, por lo que descarto que el error fuese debido a las comillas o dobles comillas.
El error que aparece en este caso es:

dbConect : Error executing query: You have an error in your SQL syntax; check de manual that corresponds to your MySQL server versión for the right syntax to use near 'GROUP BY CA0)' at line 10.

Si cambio el orden poniendo Group by antes que where, el error es este:

dbConect : Error executing query: You have an error in your SQL syntax; check de manual that corresponds to your MySQL server versión for the right syntax to use near 'where ( CA0 between '2007-08-29' and '2007-08-29' and CA22='A')' at line 8.

un saludo y gracias por vuestra ayuda.

Pd.- También he probado a poner having CA22 .... y nada, el mismo error.

Última edición por xterm fecha: 04-09-2007 a las 00:28:25.
Responder Con Cita