Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Obtener Todo El Registro De Una Tabla Aunque Aunque Este Agrupado Por 2 Campos (https://www.clubdelphi.com/foros/showthread.php?t=13205)

agova 10-08-2004 21:40:17

Obtener Todo El Registro De Una Tabla Aunque Aunque Este Agrupado Por 2 Campos
 
Tratare de explicarles mi problema con datos, tengo la siguiente informacion
1,1,2 ,01/08/04
1,1,5 ,03/08/04
1,1,9 ,02/08/04
1,1,12 ,06/08/04
1,1,3 ,12/08/04
1,1,41 ,10/08/04
1,1,201 ,11/08/04
1,2,2 ,01/08/04
1,2,5 ,02/08/04
1,2,9 ,06/08/04
1,2,12 ,05/08/04
1,2,3 ,09/08/04
1,2,41 ,10/08/04
1,2,209 ,11/08/04

Quiero obtener el registro completo (los 4 campos) del registro con la Max(Fecha) agrupado solo por los primeros dos campos.
Esto es

1,1,3 ,12/08/04
1,2,209 ,11/08/04

Alguien puede ayudarme por favor.
De antemano agradezco sus respuestas.

jachguate 10-08-2004 21:50:15

Se me ocurre esto:

Código SQL [-]
select t1.campo1, t1.campo2, t1.campo3, t1.fecha
  from tabla t1
 where t1.fecha = (select max(t2.fecha)
                     from tabla t2
                    where t2.campo1 = t1.campo1
                      and t2.campo2 = t1.campo2)

Aunque no lo he probado dado que no tengo un motor a mano... probalo y espero que regreses a decir si te sirvió o no.

Hasta luego.

;)

agova 11-08-2004 00:00:28

Muchas gracias jachguate

Primeramente por contestar tan pronto y seguidamente por que funciono exactamente como yo esperaba a la primera.

Me gustaria de una vez saber si puedo actualizar el valor dependiendo de los resultados de esta misma consulta a una tabla.

Agradecería si alguien me puede ayudar.

Gracias de nuevo jachguate (Excelente foro)

jachguate 11-08-2004 01:26:23

Cita:

Empezado por agova
Me gustaria de una vez saber si puedo actualizar el valor dependiendo de los resultados de esta misma consulta a una tabla.

Depende de lo que esto signifique...

Código SQL [-]
Update tabla
  set valor = select, bla bla
si se puede.

Otras cosas.. dependerá.

Cita:

Empezado por agova
(Excelente foro)

Yo pienso lo mismo, por eso estoy aqui.. :p

Hasta luego.

;)

agova 11-08-2004 02:00:35

Hice algo como esto

Update ordenp set ordenp = SELECT T1.ORDENP,T1.BULTO,T1.OPERACION,T1.RECEPCION
FROM PRODUCCIONC T1
WHERE T1.RECEPCION=
(SELECT MAX(T2.RECEPCION) FROM PRODUCCIONC T2
WHERE T1.ORDENP=T2.ORDENP AND T1.BULTO=T2.BULTO)
ORDER BY ORDENP,BULTO

Pero me da el error

parse error at or near "SELECT"

Cabe mencionar que quiero actualizar los valores de la tabla ordenp, los campos que quiero actualizar tienen los mismos nombre ordenp y bulto como los que me devuelve la consulta.

jachguate 11-08-2004 02:16:00

El select debe devolver, como es de esperarse un solo resultado. Es decir, una sola tupla con una sola columna. También debiera estar encerrado entre paréntesis (mea culpa, pues yo los he obviado en mi respuesta anterior).

Por último, salvo que querras que todas las filas de la tabla ordenp tengan el mismo valor... debiera existir algun conjunto de campos que correlacionen entre ordenp y el select (produccionc), de manera que el valor establecido para cada fila sea el adecuado.

Hasta luego.

;)

agova 11-08-2004 15:48:14

Gracias ya lo corregi, y queda de este modo:

Update ordenp set ordenp = (SELECT T1.ORDENP,T1.BULTO,T1.OPERACION,T1.RECEPCION
FROM PRODUCCIONC T1
WHERE T1.RECEPCION=
(SELECT MAX(T2.RECEPCION) FROM PRODUCCIONC T2
WHERE T1.ORDENP=T2.ORDENP AND T1.BULTO=T2.BULTO)
ORDER BY ORDENP,BULTO)

y como era de esperarse como me lo habias dicho devuelve el error: "subselect must have only one field" entiendo que haya que establecer una condicion en el SQL para que lo de produccionc con llave ordenp,bulto pueda ser actualizado a lo que devuelve la consulta inicial tambien con campos ordenp, bulto. cabe mencionar que quiero que cada tupla produccionc sea actualizada al valor correspondiente de la consulta.

Si alguien puede ayudarme se lo agradezco.


La franja horaria es GMT +2. Ahora son las 04:28:00.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi