Ver Mensaje Individual
  #9 (permalink)  
Antiguo 28/12/2011, 09:41
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Necesito obtener el último valor de cada indicador (en la misma consulta)

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. fecha datetime,
  4. indicador VARCHAR(2),
  5. valor INT
  6. )
  7.  
  8.  
  9. INSERT INTO #temp VALUES ('11/30/2011', 'A', 30)
  10. INSERT INTO #temp VALUES ('11/30/2011', 'B', 30)
  11. INSERT INTO #temp VALUES ('11/30/2011','C', 30)
  12. INSERT INTO #temp VALUES ('12/1/2011', 'A', 30)
  13. INSERT INTO #temp VALUES ('12/1/2011', 'B', 30)
  14. INSERT INTO #temp VALUES ('12/1/2011', 'C', 30)
  15. INSERT INTO #temp VALUES ('12/2/2011', 'A', 30)
  16. INSERT INTO #temp VALUES ('12/2/2011', 'B', 30)
  17.  
  18.  
  19. SELECT * FROM #temp WHERE CONVERT(VARCHAR(10),fecha) + '|' + indicador IN
  20. (SELECT CONVERT(VARCHAR(10),MAX(fecha)) + '|' + indicador  FROM #temp GROUP BY indicador)
  21.  
  22. Resultado:
  23.  
  24. 2011-12-01 00:00:00.000 C   30
  25. 2011-12-02 00:00:00.000 A   30
  26. 2011-12-02 00:00:00.000 B   30

Que significa fecha + '|' + indicador el '|' es un caracter que el agregue para separar los valores de fecha y de indicador para hacer la comparacion :)


Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me