| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
niko Invitado
|
Publicado: Lun 15 Nov, 2004 5:27 pm Asunto: field not found |
|
|
Hola a todos
tengo el siguente conjunto de instrucciones:
Query->Close();
Query->SQL->Clear();
Query->SQL->Add("Select Sum(Gasto) as SumaGasto from Pedidos where CodigoUsuario='45653'");
Query24->Open();
CADA VEZ QUE EJECUTO ESTAS INSTRUCCIONES ME SALE EL ERROR :
Field 'CodigoUsuario' not found
HE PROBADO OTRAS INSTRUCCIONES COMO UPDATE Y SI ME FUNCIONAN LO QUE ME HACE SOSOPECHAR QUE EL PROBLEMA ESTA EN EL SUM PERO YO NO LO VEO SI ALGUIEN PUEDE TENER UNA IDEA DE LO Q M OCURRE ME HARIA UN GRAN FAVOR...GRACIAS!!  |
|
| Volver arriba |
|
 |
Touchsoftwares Master


Registrado: 16 Dic 2002Mensajes: 869Ubicación: MEXICO Playa del Carmen
|
Publicado: Lun 15 Nov, 2004 7:16 pm Asunto: |
|
|
Revisa la estructura de la tabla " Pedidos" y si esta correcta prueba con esto:
| Código: |
Query->SQL->Add("SELECT SUM(Gasto) as SumaGasto,CodigoUsuario FROM Pedidos WHERE CodigoUsuario='45653'"); |
_________________ Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc
http://www.touchsoftwares.com |
|
| Volver arriba |
|
 |
TObject Cdt

Registrado: 28 Jun 2004Mensajes: 17
|
Publicado: Mar 16 Nov, 2004 12:12 am Asunto: Re: field not found |
|
|
| Posiblemente el error no se encuentre en la ejecución de la sentencia ... posiblemente se halle en otra linea de codigo .... en alguna ocasión tuve un problema similar ..... y resulto estar en una divisón entre 0 .... pero no se mostraba el error de división por cero ... sino el 'Field not found' |
|
| Volver arriba |
|
 |
niko Invitado
|
Publicado: Mar 16 Nov, 2004 11:07 am Asunto: |
|
|
| gracias por vuestros consejos pero me sigue sin funcionar, la base de datos esta bien y utilizando la instruccion alternativa que me habeis recomendado me sale otro error que me dice: Ha intentado ejecutar una consulta que no incluye la expresion especificada 'CodigoUsuario' como parte de una funcin de agregado |
|
| Volver arriba |
|
 |
Alberto Lavariega Arista Lt JG

Registrado: 22 Oct 2004Mensajes: 66Ubicación: Bahias de Huatulco, Oaxaca
|
Publicado: Mie 29 Dic, 2004 7:10 pm Asunto: |
|
|
checa muy bien el tipo de datos de CodigoUsuario, posiblemete ahi este el error, tal vez sea un tipo int o algo relacionado y lo estas manjenado como un char o varchar..
saludos _________________ Alberto Lavariega Arista |
|
| Volver arriba |
|
 |
LordNemesis Master


Registrado: 31 Dic 2003Mensajes: 340Ubicación: México
|
Publicado: Mar 04 Ene, 2005 5:57 pm Asunto: |
|
|
El error que tienes con esta sentencia:
| Código: |
Query->SQL->Add("SELECT SUM(Gasto) as SumaGasto,CodigoUsuario FROM Pedidos WHERE CodigoUsuario='45653'");
|
Es que el SUM te va a 'Sumar' todos los campos que coincidan en un solo registro, mientras que CodigoUsuario obviamente te devolvera mas de un registro, es por eso que esa consulta no es permitida, lo que tienes que hcer es agrupar la consulta por CodigoUsuario o sacarle un Max a Codigo Usuario, y como estas condicionando por CodigoUsuario, tu consulta no se vera afectada... has algo como esto:
| Código: |
Query->SQL->Add("SELECT SUM(Gasto) as SumaGasto,CodigoUsuario FROM Pedidos WHERE CodigoUsuario='45653' Group by CodigoUsuario");
|
o bien
| Código: |
Query->SQL->Add("SELECT SUM(Gasto) as SumaGasto,Max(CodigoUsuario) FROM Pedidos WHERE CodigoUsuario='45653'");
|
y como estas filtrando por CodigoUsuario, siempre tge va a regresar un solo valor para todos los campos, otra cosa que podrias hacer es no poner a CodigoUsuario dentro del select, ya que cmo estas filtrando por ese campo, obviamente ese valor ya lo conoces, entonces no seria necesario obtenerlo, y tu consulta te quedaria mas corta y obviamente mas rapida:
| Código: |
Query->SQL->Add("SELECT SUM(Gasto) as SumaGasto FROM Pedidos WHERE CodigoUsuario='45653'");
|
Espero te haya servido un poco mi ayuda, saludos _________________ Dirección Municipal de Informática
H. Ayuntamiento de Tijuana
Arriba Lopez Obrador !!!
Los Mexicanos Merecemos Respeto !!! |
|
| Volver arriba |
|
 |
|