Ver Mensaje Individual
  #8 (permalink)  
Antiguo 31/12/2012, 13:38
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: Libras: esto es para ti

Cita:
Iniciado por GeriReshef Ver Mensaje
Código SQL:
Ver original
  1. DECLARE @SQL VARCHAR(MAX);
  2. WITH T AS
  3. (SELECT ROW_NUMBER() OVER(Partition BY rut ORDER BY fono) Nm,
  4.         *
  5. FROM    #temp),
  6. Numeros AS
  7. (SELECT DISTINCT Nm
  8. FROM    T)
  9. SELECT  @SQL=IsNull(@SQL+','+CHAR(13),'')+'     Max(Case When Nm='+CAST(Nm AS VARCHAR)+' Then fono End) ['+CAST(Nm AS VARCHAR)+']'
  10. FROM    Numeros;
  11. SELECT  @SQL=
  12. 'With T As
  13. (Select Row_Number() Over(Partition By rut Order By fono) Nm,
  14.         *
  15. From    #temp)
  16. Select  rut,'+CHAR(13)+
  17. +@SQL+CHAR(13)+
  18. 'From   T
  19. Group By rut
  20. Order By rut;'
  21. Print   @SQL;
  22. EXEC(@SQL);
  23. SELECT  CAST(0x460065006C0069007A0020006100F1006F0020006E007500650076006F00 AS NVarchar);
cool :) buen codigo
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me