FoxPro/Visual FoxPro - GROUP.... ¡Anduvo!! pero...

   
Vista:

GROUP.... ¡Anduvo!! pero...

Publicado por Novato (325 intervenciones) el 11/02/2011 22:19:09
Hola!

Hago un nuevo post porque si bien el Select Sql funciona ¡PERO NO ME AGRUPA LOS DATOS!!

En realidad el cursor que me devuelve es el mismo que si no lo agrupo. Lo único bueno es que queda ordenado!!

EJEMPLO: Tengo una tabla con los pedidos de un cliente

cod-rubro __ cod-articulo __ cantidad__ precio ___ fecha
01 ________1234 _________ 5 _______ 100____ 10/10
01 ________ 9999 ________ 2 ________25 ____ 10/10
01 ________ 1234 ________ 4 ________125 ___ 15/11

Si ejecuto el siguiente comando

SELECT cod-rubro, cod-articulo, SUM(cantidad), MAX(precio) ;
FROM pedidos WHERE cliente=mi_variable;
GROUP BY cod-rubro, cod-articulo
INTO CURSOR mi_cursor

Cuando miro lo que hay en MI_CURSOR

cod-rubro __ cod-articulo __ cantidad__ precio
01 ________1234 _________ 5 _______ 100
01 ________ 1234 ________ 4 _______ 125
01 ________ 9999 ________ 2 ________25

¡LO MISMO PERO ORDENADO!!!!!!!!!!!!!!!!!!!

¿DONDE ESTÁ EL ERROR???????????????? ? ?

Debería quedar así
cod-rubro __ cod-articulo __ cantidad__ precio
01 ________1234 _________ 9_______ 125
01 ________ 9999 ________ 2 ________25
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
Imágen de perfil de Mauricio

GROUP.... ¡Anduvo!! pero...

Publicado por Mauricio (1368 intervenciones) el 12/02/2011 00:04:32
No se como haces tus pruebas, pero aca esta el codigo que tu pusiste y a mi m funciona como tu deseas........
vcodigo = 1
* cod_rubro N(3), cod_art N(5), cantidad N(5), precio N(3)
*---
SELECT cod_rubro, cod_art, SUM(cantidad), Max(precio)AS Precio FROM pedidos ;
WHERE cod_rubro = vcodigo GROUP BY cod_rubro, cod_art INTO CURSOR mi_cursor
brow
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:GROUP.... ¡Anduvo!! pero...

Publicado por Novato (325 intervenciones) el 12/02/2011 00:12:11
Gracias Mauricio!!

Pero descubrí que NO FUNCIONA cuando hay una combinación (relación) con otra tabla.

En el ejemplo, me faltó agregar NOMBRE (del artículo) que sale de la tabla ARTICULOS.

SELECT campos de pedidos, campo de nombre ;
FROM pedidos LEFT OUTER JOIN articulos ;
ON pedidos.cod_art= articulos.cod_art WHERE.....

Si le saco la parte de articulos (el campo de nombre, LEFT OUTER y ON...) funciona bárbaro,

¿Cómo se puede hacer esta combinación??
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
Imágen de perfil de Mauricio

Si Funciona

Publicado por Mauricio (1368 intervenciones) el 12/02/2011 01:17:20
Claro que funciona, aca el codigo:
*---
vcodigo = 1
* cod_rubro N(3), cod_art N(5), cantidad N(5), precio N(3)
* codigo N(5), Nombre C(30) En el caso de articulos
*---
SELECT cod_rubro, cod_art, nombre, SUM(cantidad), Max(precio)AS precio FROM pedidos , articulos ;
WHERE cod_art = codigo AND cod_rubro = vcodigo GROUP BY cod_rubro, cod_art INTO CURSOR mi_cursor
brow
Suerte!!!!!!!!!!!!!!!!!!!!!!
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:GROUP.... ¡Anduvo!! pero...

Publicado por Novato (325 intervenciones) el 12/02/2011 00:20:31
En realidad TAMPOCO es el problema anterior...

Acabo de probar y el problema está en la manera que se agrupa:

Si al SELECT que tu escribiste, le agrego más campos aunque sea de la misma tabla (por ejemplo, FECHA), también tengo que agregar el campo al GROUP BY ¿no?

Si no lo agrego, me da un error
Si lo agrego, aparecen todas las líneas y no agrupo
Si ejecuto el SELECT que tu escribiste, funciona perfecto.

¿¿??
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

EUREKA... por si le sirve a alguien....

Publicado por Novato (325 intervenciones) el 12/02/2011 00:51:51
En realidad puse primero todos los campos "comunes" y después todos los calculados.
En la parte de GROUP BY puse "exactamente" el mismo orden que fui poniendo los campos arriba y ahora... ¡FUNCIONA!
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:GROUP.... ¡Anduvo!! pero...

Publicado por Gabriel (112 intervenciones) el 13/02/2011 07:20:40
Hola,

Tal parece que tu problema no está en la sintaxis, sinó mas bien en el dato de la columna cod-articulo, pues en los que colocas, claramente se puede ver que existen 3 artículos distintos: el (1234), el (9999) y el ( 1234).

Pues como dicen nuestros amigos, el select q tienes está bien.

Saludos.
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