Ver Mensaje Individual
  #6 (permalink)  
Antiguo 15/08/2017, 08:37
Avatar de iislas
iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Cómo obtener la primera y la utlimo registros

Yo te di una respuesta en LWDP

Código SQL:
Ver original
  1. -- Datos en tabla de entrada
  2.  
  3. --id  group   val   start   end
  4.  
  5. --1   10      36    465     89
  6.  
  7. --2   10      35    55      11
  8.  
  9. --3   10      34    20      456
  10.  
  11. --4   20      38   1140     1177
  12.  
  13. --5   20      22    566     788
  14.  
  15. --6   20      1235  789     4796
  16.  
  17. --7   20      7894  741     1067
  18.  
  19.  
  20.  
  21. -- Resultado deseado
  22.  
  23. --id  group   val   start   end
  24.  
  25. -- 1   10      36    465     89
  26.  
  27. -- 3   10      34    20      456
  28.  
  29. -- 4   20      38   1140     1177
  30.  
  31. -- 7   20      7894  741     1067
  32.  
  33.  
  34.  
  35. DROP TABLE #test
  36.  
  37. CREATE TABLE #test ([id] INT, [GROUP] INT, [val] INT, [START] INT, [END] INT)
  38.  
  39. INSERT INTO #test VALUES(
  40.  
  41. 1   ,10      ,36    ,465     ,89),
  42.  
  43. (2   ,10      ,35    ,55      ,11),
  44.  
  45. (3   ,10      ,34    ,20      ,456),
  46.  
  47. (4   ,20      ,38   ,1140     ,1177),
  48.  
  49. (5   ,20      ,22   ,566     ,788),
  50.  
  51. (6   ,20      ,1235  ,789     ,4796),
  52.  
  53. (7   ,20      ,7894  ,741     ,1067)
  54.  
  55.  
  56.  
  57.  
  58.  
  59. WITH Cte AS(
  60.  
  61.     SELECT *,
  62.  
  63.         RnAsc = ROW_NUMBER() OVER(PARTITION BY [GROUP] ORDER BY val),
  64.  
  65.         RnDesc = ROW_NUMBER() OVER(PARTITION BY [GROUP] ORDER BY val DESC)
  66.  
  67.     FROM #test
  68.  
  69. )
  70.  
  71. SELECT
  72.  
  73.     id, [GROUP], val, START, [END]
  74.  
  75. FROM Cte
  76.  
  77. WHERE
  78.  
  79.     RnAsc = 1 OR RnDesc = 1
  80.  
  81. ORDER BY [GROUP], val
__________________
MCTS Isaias Islas