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

Conseguir última etapa de un proyecto

Estas en el tema de Conseguir última etapa de un proyecto en el foro de SQL Server en Foros del Web. Hola, Tengo tres tablas, proyecto, etapas, programacionetapas. Proyecto puede tener varias etapas y éstas varias programaciones. Quiero saber la última etapa de un proyecto, basándome ...
  #1 (permalink)  
Antiguo 16/02/2010, 16:18
 
Fecha de Ingreso: marzo-2009
Mensajes: 76
Antigüedad: 15 años, 9 meses
Puntos: 0
Conseguir última etapa de un proyecto

Hola,

Tengo tres tablas, proyecto, etapas, programacionetapas.

Proyecto puede tener varias etapas y éstas varias programaciones.

Quiero saber la última etapa de un proyecto, basándome únicamente en la fecha fin de ésta, pero lo más que he conseguido es saber un proyecto con cada una de sus etapas y la máxima fecha de finalización de ésta.

Yo querría obtener:
2 3 15/05/2009

y lo que tengo es:

proyecto etapa fechafin
2 2 30/12/2008
2 3 15/05/2009
2 4 01/10/2008
2 5 30/10/2008

lo consigo mediante la consulta:

Código SQL:
Ver original
  1. SELECT     dbo.Etapas.proyecto, dbo.Etapas.id AS etapa, MAX(dbo.ProgramacionEtapas.fechaFin) AS fechaFin
  2. FROM         dbo.Etapas INNER JOIN
  3.                       dbo.ProgramacionEtapas ON dbo.Etapas.id = dbo.ProgramacionEtapas.etapa
  4. GROUP BY dbo.Etapas.proyecto, dbo.Etapas.id

Sé que me falta algo, pero necesito el id de la etapa y lo más que he conseguido ha sido esto. Como puedo hacerlo?

Muchas gracias.
Saludos.
  #2 (permalink)  
Antiguo 16/02/2010, 21:22
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 20 años
Puntos: 38
Respuesta: Conseguir última etapa de un proyecto

que tal asi?

Código:
SELECT   Top 1
         e.proyecto, 
	 e.id AS etapa, 
	 MAX(pe.fechaFin) AS fechaFin
FROM     dbo.Etapas e
INNER JOIN
	 dbo.ProgramacionEtapas pe
ON 	 e.id = pe.etapa
GROUP BY e.proyecto, 
	 e.id
Order by MAX(pe.fechaFin) DESC
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 17/02/2010, 02:10
 
Fecha de Ingreso: marzo-2009
Mensajes: 76
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Conseguir última etapa de un proyecto

Hola Andres95,

Gracias antes que todo, pero no es exactamente lo que busco (por culpa mía). Quise simplificar el ejemplo y simplifiqué demasiado...

La idea es esta, pero en lugar de un solo proyecto, quiero obtener el listado de todos los proyectos con su última etapa y la fecha de finalización prevista asociada a ésta. Por tanto, con el TOP 1 obtengo la última etapa de todos los proyectos :(.

Pongo el mismo ejemplo con más datos para que se vea más claro:

Yo querría obtener:
2 3 15/05/2009
3 6 20/11/2009
4 10 30/4/2009
.......

y lo que tengo es:

proyecto etapa fechafin
2 2 30/12/2008
2 3 15/05/2009
2 4 01/10/2008
2 5 30/10/2008
3 6 20/11/2009
3 7 30/4/2008
3 8 20/06/2009
4 9 20/07/2008
4 10 30/4/2009

Gracias.

Etiquetas: conseguir, proyectos
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 14:22.