Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. SELECT
  2. id,
  3. a,
  4. b
  5. FROM prefix_2014.mytable
  6. UNION ALL
  7. SELECT
  8. id,
  9. a,
  10. b
  11. FROM prefix_2013.mytable
  12. UNION ALL
  13. id,
  14. a,
  15. b
  16. FROM prefix_2012.mytable
  17.  
  18. WITH CTE AS(SELECT
  19. id,
  20. 3 as [Year]
  21. FROM prefix_2014.mytable
  22. UNION ALL
  23. SELECT
  24. id,
  25. 2 as [Year]
  26. FROM prefix_2013.mytable
  27. UNION ALL
  28. Select
  29. id,
  30. 1 as [Year]
  31. FROM prefix_2012.mytable)
  32. Select ID,MAX([Year]) as YR into #T From CTE
  33. group by ID
  34.  
  35.  
  36. Select t.ID,a,b From #T t
  37. join Test1 t1
  38. on t1.id = t.id
  39. where YR = 1
  40. UNION ALL
  41. Select t.ID,a,b From #T t
  42. join Test2 t2
  43. on t2.id = t.id
  44. where YR = 2
  45. UNION ALL
  46. Select t.ID,a,b From #T t
  47. join Test3 t3
  48. on t3.id = t.id
  49. where YR = 3
  50.  
  51. CREATE VIEW YearIDs AS
  52. SELECT ID, Max(year) FROM
  53. (SELECT
  54. id, 2014 as year
  55. FROM prefix_2014.mytable
  56. UNION
  57. SELECT
  58. id, 2013
  59. FROM prefix_2013.mytable
  60. UNION
  61. id, 2012
  62. FROM prefix_2012.mytable)
  63. GROUP By ID )
  64.  
  65. SELECT T1.id, T1.a, T1.b
  66. FROM prefix_2014.mytable AS T1
  67. INNER JOIN YearIDs AS Y1 ON Y1.Id = T1.ID AND Y1.year = 2014
  68. UNION ALL
  69. SELECT T2.id, T2.a, T2.b
  70. FROM prefix_2013.mytable AS T2
  71. INNER JOIN YearIDs AS Y2 ON Y2.Id = T2.ID AND Y2.year = 2013
  72. UNION ALL
  73. SELECT T3.id, T3.a, T3.b
  74. FROM prefix_2012.mytable Y3.Id = T3.ID AND AS T3
  75. INNER JOIN YearIDs AS Y3 ON Y3.year = 2012
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement