PDA

Ver la Versión Completa : error field '' not found


sonjeux
05-07-2015, 06:45:16
Saludos, tengo un problema en una consulta que esta en un ibquery, al ejecutar la aplicacion me sale el error field '' not found, o sea como que no encuentra un campo que no tiene nombre. Adjunto la captura del error, no tengo idea de que puede ser, la consulta se ejecuta correctamente. Cuando estoy editando la aplicacion y cambio la propiedad active a true me muestra los datos.

La consulta es la siguiente

select
(select almacen.nombre from almacen where almacen.id=stock.idalmacen) as almacenNombre,
(select producto.nombre from producto where producto.id=stock.idproducto) as productoNombre,
(select producto.preciocsf from producto where producto.id=stock.idproducto) as productoCosto,
stock.* from stock

gracias de antemano por su ayuda

newtron
05-07-2015, 09:09:57
Hola.

No soy especialista en esto, pero mientras te contesta alguien que sepa más a mi me suena un poco extraño eso de "stock.* from stock". Yo probaría a cambiarlo por "* from stock".

Saludos

ecfisa
05-07-2015, 18:33:42
Hola sonjeux.

Esa consulta como está escrita no tendría que dar el error que mostras en la imágen. Seguramente sucede por como está ingresada en el componente TIBQuery (pareciera que se te hubiera deslizado alguna comilla doble).

¿ Podrías hacer un copy/paste del código Delphi donde asignas la cadena ?



Por otro lado, aunque la consulta no es incorrecta, opino que resulta mas simple de escribir e interpretar evitando las subconsultas:

SELECT AL.NOMBRE AS ALMACENNOMBRE,
PR.NOMBRE AS PRODUCTONOMBRE,
PR.PRECIOCSF AS PRODUCTOCOSTO, ST.*
FROM STOCK ST
INNER JOIN ALMACEN AL ON ST.IDALMACEN = AL.ID
INNER JOIN PRODUCTO PR ON ST.IDPRODUCTO = PR.ID


Saludos :)

Casimiro Notevi
05-07-2015, 19:04:34
Por otro lado, aunque la consulta no es incorrecta, opino que resulta mas simple de escribir e interpretar evitando las subconsultas:
Y se ejecutará bastante más rápido.

nlsgarcia
05-07-2015, 19:29:31
Daniel,


...Por otro lado...resulta mas simple de escribir...evitando las subconsultas...

^\||/

Nelson.