Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Rompecocos

Estas en el tema de Rompecocos en el foro de Bases de Datos General en Foros del Web. Tengo una tabla con la siguiente información: Id FInicio FTermina Proceso 153 30/06/2004 02/07/2004 A 153 05/07/2004 09/07/2004 B 153 12/07/2004 06/07/2004 C 156 17/06/2004 ...
  #1 (permalink)  
Antiguo 05/07/2004, 14:30
 
Fecha de Ingreso: julio-2002
Mensajes: 105
Antigüedad: 21 años, 9 meses
Puntos: 0
Rompecocos

Tengo una tabla con la siguiente información:
Id FInicio FTermina Proceso
153 30/06/2004 02/07/2004 A
153 05/07/2004 09/07/2004 B
153 12/07/2004 06/07/2004 C
156 17/06/2004 18/06/2004 D
156 21/06/2004 22/06/2004 E
156 23/06/2004 28/06/2004 F
156 29/06/2004 02/07/2004 G
157 17/06/2004 23/06/2004 H
157 24/06/2004 25/06/2004 I
157 28/06/2004 29/06/2004 J

Al realizar un sql ordenada por: Id, FInicio, FTermina, me arroja la información de arriba, ahora lo que yo quiere es que de cada Id me traiga el
primer registro, por medio de consultas, osea me trairia lo siguiente:

153 30/06/2004 02/07/2004 A
156 17/06/2004 18/06/2004 D
157 17/06/2004 23/06/2004 H

Como puede hacer esto....
  #2 (permalink)  
Antiguo 05/07/2004, 16:48
Avatar de EL_MVM  
Fecha de Ingreso: julio-2004
Mensajes: 24
Antigüedad: 19 años, 9 meses
Puntos: 0
Utiliza Select DISTINCT id, etc.

y ordenados como los tenias
  #3 (permalink)  
Antiguo 06/07/2004, 08:29
 
Fecha de Ingreso: julio-2002
Mensajes: 105
Antigüedad: 21 años, 9 meses
Puntos: 0
Rompecocos

Lo que pasa es que no puedo utilizar el distinct por que no me haria absolutamente nada debido a que el unico campo igual es el Id, pero los demás son diferentes
  #4 (permalink)  
Antiguo 06/07/2004, 09:41
 
Fecha de Ingreso: abril-2004
Mensajes: 36
Antigüedad: 20 años
Puntos: 0
creo que con un group by se podria conseguir ordenarlos por Id y despues selecciona el de fecha menor MIN(fInicio).
Ahora mismo no se como seria la consulta, pero creo que por ahi van los tiros.
Creo que seria con el HAVING.

SELECT Id
FROM Tabla
GROUP BY Id
HAVING MIN(fInicio);

Asi se obtendria el Id.
Si puedes hacer subconsultas, ya lo tienes, si no, tendras que hacer otra consulta desde codigo.
  #5 (permalink)  
Antiguo 08/07/2004, 01:34
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años
Puntos: 0
No sé qué base de datos estás utilizando, pero una forma de hacer eso sería, si tu BBDD te lo permite:


SELECT Id, FInicio, FTermina, Proceso
FROM TuTabla INNER JOIN
(SELECT Id, Min(TuTabla.FInicio) AS FInicio FROM TuTabla GROUP BY Id) Sel
ON Tutabla.Id = Sel.Id AND TuTabla.FInicio = Sel.FInicio

Bueno, creo que sería asi....


Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:30.