Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/06/2013, 09:17
joseibarz
 
Fecha de Ingreso: marzo-2009
Mensajes: 76
Antigüedad: 15 años, 1 mes
Puntos: 0
Simplificar query existente para mostrar última programación de etapa

Buenas tardes,

Tengo una tabla "programacionEtapas" que está formada tal que:

| id | etapa | fechaIni | fechaFin | createdOn |

de forma que cuando se reprograma una etapa, simplemente añado un nuevo registro, para guardar el histórico de reprogramaciones.

Luego, tengo una vista creada que muestra la fecha de inicio y fin de cada etapa, teniendo en cuenta la última programación (la actual) que se ha añadido para esa etapa, basándome en la mayor fecha del campo "createdOn".

Me da a mi que se puede simplificar bastante esta query, pero no acabo de dar con la fórmula para hacerlo.

Alguien me puede echar una mano?

Muchas gracias.
Saludos.
Código SQL:
Ver original
  1. SELECT     TOP 100 PERCENT pro.etapa, pro.fechaIni, pro.fechaFin
  2. FROM         dbo.ProgramacionEtapas AS pro INNER JOIN
  3.            (SELECT     p.id FROM dbo.ProgramacionEtapas AS p INNER JOIN
  4.                  (SELECT     TOP 100 PERCENT etapa, MAX(createdOn) AS createdOn
  5.                  FROM          dbo.ProgramacionEtapas
  6.                  GROUP BY etapa) AS s
  7.            ON p.etapa = s.etapa AND p.createdOn = s.createdOn GROUP BY p.id)
  8.            AS pre ON pro.id = pre.id

Última edición por gnzsoloyo; 20/06/2013 a las 10:37