el SET ENGINEBEHAVIOR 70 te podria mentir, lo unico que hace es que el comportamiento sea igual al de visual fox 7, en otras palabras no utilizas un SQL puro, y el error que te da visual fox es que verifica el SELECT que estas haciendo y lo hace de manera pura, con esto lo que quiero decir, es que estas omitiendo la regla necesaria para usar un GROUP BY
SELECT * FROM PEDIDOS GROUP BY PEDIDOS.PROVEEDOR
porque da error?, le dices tome todos los campos, en SQL puro no puedes hacer esto,te el mismo error
deberias hacerlo mas o menos asi
tienes
TABLA1
CODIGO
VENTA
CODIGO VENTA
00001 2000
00001 100
00001 10
00001 1
00001 2
00002 2000
00002 1800
00002 400
00002 50
SELECT * FROM tabla1 GROUP BY codigo
da error porque no sabe que quieres hacer con venta (aunque para nosotros sea obvio), entonces en pocas palabras lo que quieres es ver solo 00001 y 00002 con sus ventas
SELECT codigo,sum(venta) AS venta from TABLA1 GROUP BY codigo
ahora entiendes la diferencia?
si fuera
SELECT codigo,sum(venta) AS venta,fecha from TABLA1 GROUP BY codigo
tambien daria error, tienes que agrupar la fecha tambien
SELECT codigo,sum(venta) venta,fecha from TABLA1 GROUP BY codigo,fecha
a menos que le des un max(fecha) (por ejemplo)
SELECT codigo,sum(venta) venta,max(fecha) from TABLA1 GROUP BY codigo
pero que pasa con esto?, que te miente en la fecha, porque no se vendio todo necesariamente en esa fecha, pues bien, SET ENGINEBEHAVIOR 70 actua de esta forma o de una muy parecida, en la que un dato del algun campo no es como el te lo presenta, me entiendes?
salu2
|