Guest User

Untitled

a guest
Feb 22nd, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. select TmStamp, site_id, value
  2. from
  3. (select TmStamp, G0025890, G0025891
  4. from [BIG SLOUGH (STN 953)_HOURLY]
  5. where TmStamp = (select max(TmStamp) from [BIG SLOUGH (STN 953)_HOURLY])) p
  6. unpivot
  7. (value FOR site_id IN (G0025890, G0025891))AS unpvt;
  8.  
  9. create table my_table (tabname varchar(200), site_id int, logger_field varchar(200));
  10.  
  11. insert into my_table values
  12. ('[big_slough]', 2589, 'G0025890'),
  13. ('[big_slough]', 2590, 'G0025891');
  14.  
  15.  
  16. create table [big_slough]
  17. (
  18. TmStamp datetime,
  19. RecNum int,
  20. Batt_Volt decimal(18,2),
  21. G0025890 decimal(18,2),
  22. G0025891 decimal(18,2)
  23. );
  24.  
  25. insert into [big_slough] values
  26. ('20170725 08:00:00', 0, 13.25, 32.52, 29.63229),
  27. ('20170725 09:00:00', 1, 13.48, 32.51, 29.61947),
  28. ('20170725 10:00:00', 2, 14.07, 32.50, 29.61757),
  29. ('20170725 11:00:00', 3, 14.14, 32.49, 29.61356),
  30. ('20170725 12:00:00', 4, 13.43, 32.49, 29.61185),
  31. ('20170725 13:00:00', 5, 13.34, 32.50, 29.60452);
  32.  
  33. GO
  34.  
  35. create procedure sp_generate_view
  36. (
  37. @tabname varchar(200)
  38. )
  39. as
  40. begin
  41.  
  42. declare @cols nvarchar(max);
  43. declare @cmd nvarchar(max);
  44.  
  45. set @cols = stuff((select ',' + quotename(logger_field)
  46. from my_table
  47. for xml path(''),
  48. type).value('.', 'nvarchar(max)'),1,1,'');
  49.  
  50. set @cmd = 'select TmStamp, site_id, value
  51. from
  52. (select TmStamp, ' + @cols + '
  53. from ' + @tabname + '
  54. where TmStamp = (select max(TmStamp)
  55. from ' + @tabname + ')) p
  56. unpivot
  57. (value FOR site_id IN (' + @cols + ')) AS unpvt';
  58.  
  59. exec (@cmd);
  60.  
  61. end
  62. GO
  63.  
  64. create procedure sp_generate_view
  65. (
  66. @tabname varchar(200)
  67. )
  68. as
  69. begin
  70.  
  71. declare @cols nvarchar(max);
  72. declare @cmd nvarchar(max);
  73.  
  74. set @cols = stuff((select ',' + quotename(logger_field)
  75. from my_table
  76. for xml path(''),
  77. type).value('.', 'nvarchar(max)'),1,1,'');
  78.  
  79. set @cmd = 'select TmStamp, site_id, value
  80. from
  81. (select TmStamp, ' + @cols + '
  82. from ' + @tabname + '
  83. where TmStamp = (select max(TmStamp)
  84. from ' + @tabname + ')) p
  85. unpivot
  86. (value FOR site_id IN (' + @cols + ')) AS unpvt';
  87.  
  88. exec (@cmd);
  89.  
  90. end
  91. GO
  92.  
  93. exec sp_generate_view @tabname = '[big_slough]';
  94. GO
  95.  
  96. exec sp_generate_view @tabname = '[big_slough]';
  97. GO
Add Comment
Please, Sign In to add comment