FoxPro/Visual FoxPro - Problemas en consultas

   
Vista:

Problemas en consultas

Publicado por Mario Porras (27 intervenciones) el 18/06/2009 21:40:30
Hola de nuevo,

Las siguientes consultas funcionan bien en VFP6 y no en VFP9:

SELECT articulos.clArt, articulos.articulo, SUM(salida.cantidad) AS total;
FROM salida;
INNER JOIN articulos ON articulo.clArt = salida.clArt;
GROUP BY articulos.clArt

El error es "GROUP BY clause is missing or invalid"

Si se elimina "articulos.articulo", la consulta funciona.

Otra:

SELECT DISTINCT fichaArtic.clFicha, fichaTecnica.ficha;
FROM fichaArtic;
INNER JOIN fichaTecnica ON fichaTecnica.clFicha = fichaArtic.clFicha;
ORDER BY fichaTecnica.tipoPlato, fichaTecnica.ficha

Muestra el mismo error: "ORDER BY is invalid" Si se elimina "DISTINCT", o una de las cláusulas de ORDER BY, la consulta funciona.

Agradecería cualquier comentario al respecto, sobre qué estoy haciendo mal o qué concepto ha cambiado entre versiones que puede impedir el funcionamiento de consultas.

Saludos, Mario
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas en consultas

Publicado por Ernesto Hernandez (4632 intervenciones) el 18/06/2009 21:45:42
SELECT articulos.clArt, articulos.articulo, SUM(salida.cantidad) AS total;
FROM articulos,salida;
INNER JOIN articulos ON articulo.clArt = salida.clArt;
GROUP BY articulos.clArt

prueba asi
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas en consultas

Publicado por Mario Porras (27 intervenciones) el 18/06/2009 21:54:27
Muchas gracias Ernesto por tu respuesta, pero me sale un mensaje "There is a duplicate table alias 'Articulos' in the FROM clause.

Saludos, Mario
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas en consultas

Publicado por Jose Gamboa (33 intervenciones) el 19/06/2009 17:10:04
Hola
El error es un problema que causa el hecho de que vfp9 ya no interprete igual todos los comandos sql, esto es para mejorar los rendimientos y la muestra de consultas
se soluciona agregando al gruop by cada campo que no contenga una funcion sum
ej.tu comando quedaria asi para que funcione

SELECT articulos.clArt, articulos.articulo, SUM(salida.cantidad) AS total;
FROM salida;
INNER JOIN articulos ON articulo.clArt = salida.clArt;
GROUP BY articulos.clArt , articulos.articulo
como ves solo agregue al group by articulos.articulo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas en consultas

Publicado por Mario Porras (27 intervenciones) el 19/06/2009 20:27:01
Gracias por las respuestas. Parece ser que desde la versión 8 hay cambios en el tratamiento de las cláusulas GROUP BY y HAVING, para evitar determinados resultados erróneos que en algunas circunstancias podrían producirse.

Se puede evitar el error forzando a VFP a funcionar como en versiones anteriores con el comando SET ENGINEBEHAVIOR 70, pero todos recomiendan reconstruir las consultas con los nuevos conceptos.

Saludos, Mario
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar