Agrupar en consulta

81 views
Skip to first unread message

Rubén Dario Lezcano Salinas

unread,
Jan 28, 2015, 9:26:21 AM1/28/15
to publice...@googlegroups.com
Buenas tardes.

Como puedo agrupar en mi consulta sql  por Codigo, lo tengo así

SELECT pedidos.pedidokey as Pedido, pedidos.bianhao as Codigo, pedidos.name as Cliente, LEFT(pedidos.shengfen,50) as Provincia, LEFT(pedidos.chengshi,120) as Poblacion, pedidos.youbian as Postal, pedidos.jinez as Total, pedidos.riqi as fecha, pedidos.beizhu as Comentario, poees.urgente as Urgente, poees.color2 as color2 ;
FROM pedidos ;
inner JOIN poees ON pedidos.pedidokey=poees.pedidokey ; 
ORDER BY poees.urgente desc, fecha asc  ;
into CURSOR curter3

si agrego el group by codigo me da error

Saludos

integral

unread,
Jan 28, 2015, 9:45:59 AM1/28/15
to publice...@googlegroups.com
Estimado Amigo RUBEN :

Asumo que estas utilizando VFP 8.0, bueno te comento que a partir de dicha versión surgieron algunos cambios en cuanto al uso de las instrucciones SELECT SQL

Podrías anteponer la siguiente instrucción para que VFP lo valide en la forma anterior

SET ENGINEBEHAVIOR 70

Espero te ayude mi sugerencia..

Saludos,

INTEGRAL
(Lima-Perú)

Rubén Dario Lezcano Salinas

unread,
Jan 28, 2015, 9:51:00 AM1/28/15
to publice...@googlegroups.com
Siii integral eres un genio funciona.

Pero no es el resultado que esperaba :(

LO que necesito es que ordene por tres campos primero por URGENTE, FECHA y CODIGO

LO que me sucede es que si el codigo esta en dos fechas distintas me separa.

Saludos
--

Rubén Lezcano

integral

unread,
Jan 28, 2015, 10:17:47 AM1/28/15
to publice...@googlegroups.com

Gracias por lo de Genio, pero no soy ningún Genio quizás alumno de los GENIOS de este foro, no menciono los nombres pero si sus nacionalidades Un Gran saludo para mis estimados amigos de MEXICO y PARAGUAY... 

Un consejo cuando cres una instruccion Select al final utiliza el Browse

Ej.- 

SELECT * FROM Cur_Temp_Estado ORDER BY aplica, ocompra INTO CURSOR Cur_Temporal

SELECT Cur_Temporal
*BROWSE TITLE "Cur_Saga" && TIMEOUT 3 


Así podrás ver con detalle el resultado y te darás cuenta de lo que pudiera estar faltando...

Te dejo un link que encontre hace algunos años y que me servido como guia


atte.,

INTEGRAL


El miércoles, 28 de enero de 2015, 9:26:21 (UTC-5), Rubén Dario Lezcano Salinas escribió:

HernanCano

unread,
Jan 28, 2015, 10:33:10 AM1/28/15
to publice...@googlegroups.com
Rubén:
Si necesitas ordenar por URGENTE, FECHA y CODIGO, lo que estás haciendo se considera correcto.

Pero si te parece que sale "ordenado" como no quieres, entonces "la ordenación no es por URGENTE, FECHA y CODIGO".

Decide cuál es el orden que quieres y miramos qué debes cambiar.

Rubén Dario Lezcano Salinas

unread,
Jan 28, 2015, 1:20:51 PM1/28/15
to publice...@googlegroups.com
La consulta carga una grilla, en esa grilla aparecen primero los urgente,  biennnnn
 Ahora ordenta por fecha es decir :
Pedido   Cliente   Urgente     Fecha
001       Ruben       Si          01/01/01
002       Juan         Si          0102/01
003      Pedro        NO        01/01/01
004     Ruben       NO         01/02/01

Como se puede ver la consulta me ordena así y esta muy bine, pero ahora necesito que el 001 y el 004  ponga uno debajo del otro aunque lógicamente el 004 no es urgente

Es posible? o es que estoy delirando jejeje, con cada cosa que me piden aquí

Saludos


--

Rubén Lezcano

HernanCano

unread,
Jan 28, 2015, 4:49:45 PM1/28/15
to publice...@googlegroups.com
"... el 004 no es urgente..."

El ejemplo que muestras está ordenado como se le indica al SELECT-SQL.
El SELECT-SQL está haciendo lo que se le pide.

Rubén Dario Lezcano Salinas

unread,
Jan 28, 2015, 5:28:25 PM1/28/15
to publice...@googlegroups.com
Hola Hernan no no es urgente pero necesito que me muestre debajo del del cliente 001 si hago un group by se desaparece

saludos
--

Rubén Lezcano

Carlos Miguel FARIAS

unread,
Jan 29, 2015, 8:15:47 AM1/29/15
to Grupo Fox
Poco claro el requerimiento.
La necesidad de que 004 salga debajo de 001 es porque ambos son del mismo cliente?

Rubén Dario Lezcano Salinas

unread,
Jan 29, 2015, 1:29:05 PM1/29/15
to publice...@googlegroups.com
Si Carlos así es el mismo cliente lo que pasa es que realizo pedido con fecha distinta

Saludos
--

Rubén Lezcano

César Pistiner

unread,
Jan 29, 2015, 1:47:46 PM1/29/15
to publice...@googlegroups.com
Hola Rubén,

Sería ORDER BY Cliente, Urgente, Fecha

Si es que no entendí mal lo que necesitas...

Saludos,
César

Carlos Miguel FARIAS

unread,
Jan 29, 2015, 5:29:49 PM1/29/15
to Grupo Fox
Pero quedan Juan y Pedro le quedan antes de Ruben. Y Juan es de un mes después y Pedro no es urgente.
Además, hay que tener en cuenta como almacena el valor urgente (falso es menor a verdadero en muchos sistemas, 0 y 1).
Primer crearía una tabla de clientes fecha por prioridad.
DROP TABLE Prioridades 
CREATE TABLE Prioridades (prioridad int autoincrement, Cliente, Fecha, Urgente)
INSERT INTO Prioridades (Cliente, Fecha, Urgente);
   SELECT DISTINCT Cliente, Fecha, Urgente FROM TablaDatos ORDER BY Fecha, Urgente, Cliente

elimino las entradas no urgentes de los clientes que tengan alguna urgente 

DELETE FROM Prioridades WHERE Urgente="No" AND Cliente IN (SELECT Cliente FROM Prioridades WHERE Urgente="Si")

La tabla prioridades queda ordenada por su autoincremental (orden de fecha y urgente primero.

Luego hago un JOIN de las tablas TablaDatos y prioridades

SELECT P.Prioridad, T.Cliente, T.Fecha, T.Urgente;
   FROM Prioridades AS P LEFT JOIN TablaDatos AS T ON (P.Cliente=T.Cliente);
   ORDER BY 1, 3, 4

Eso debería funcionar (no tengo datos ni tiempo para más).
Saludos: Miguel, La Pampa (RA)

Rubén Dario Lezcano Salinas

unread,
Jan 30, 2015, 11:03:27 AM1/30/15
to publice...@googlegroups.com
Así es Cesar es lo que necesito pero que siempre ordene primero por Urgente y si existe otro cliente que no es urgente pero con el mismo codigo que lo coloque debajo

saludos
--

Rubén Lezcano

Carlos Miguel FARIAS

unread,
Jan 31, 2015, 8:45:27 AM1/31/15
to Grupo Fox
Mande una solución, no llego al foro?

César Pistiner

unread,
Jan 31, 2015, 2:12:31 PM1/31/15
to Grupo Fox

Si Miguel,

Llego! Al menos yo la leí.

Saludos,
César

Carlos Miguel FARIAS

unread,
Jan 31, 2015, 6:21:55 PM1/31/15
to Grupo Fox
Y funciono?
Reply all
Reply to author
Forward
0 new messages