Advertisement
Guest User

Untitled

a guest
Jul 27th, 2015
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. p_key_no col_name value table
  2. __________________________________________________________________
  3. 1 ALTEMAIL abc@gmail.com emp_info
  4. 1 PASSWORD AA321 emp_info
  5. 2 ALTEMAIL xyz@gmail.com emp_info
  6. 2 EMAIL pqr@yahoo.com emp_info
  7. 2 PASSWORD SB12321 emp_info
  8.  
  9. PKEY EMAIL FULLNAME PASSWORD TIME_STAMP ALTEMAIL
  10. 1 a123@xyz.com xyz1 AA123 2013-04-05 13:24:49.650 aaa@gmail.com
  11. 2 b123@xyz.com xyz2 BB123 2013-04-05 13:24:49.650 bbb@gmail.com
  12. 3 c123@xyz.com xyz3 CC123 2013-04-05 13:24:49.650 ccc@gmail.com
  13.  
  14. select p_key_no, ALTEMAIL, PASSWORD, EMAIL
  15. from tracking_table
  16. pivot
  17. (
  18. max(value)
  19. for col_name in (ALTEMAIL, PASSWORD, EMAIL)
  20. ) p
  21. where [table] ='emp_info'
  22.  
  23. ;with cte as
  24. (
  25. select p_key_no, ALTEMAIL, PASSWORD, EMAIL
  26. from tracking_table
  27. pivot
  28. (
  29. max(value)
  30. for col_name in (ALTEMAIL, PASSWORD, EMAIL)
  31. ) p
  32. where [table] ='emp_info'
  33. )
  34. select e.pkey,
  35. coalesce(c.email, e.email) email,
  36. e.fullname,
  37. coalesce(c.password, e.password) password,
  38. time_stamp,
  39. coalesce(c.altemail, e.altemail) altemail
  40. from emp_info e
  41. left join cte c
  42. on e.pkey = c.p_key_no;
  43.  
  44. | PKEY | EMAIL | FULLNAME | PASSWORD | TIME_STAMP | ALTEMAIL |
  45. ------------------------------------------------------------------------------------
  46. | 1 | a123@xyz.com | xyz1 | AA321 | 2013-04-05 13:24:49 | abc@gmail.com |
  47. | 2 | pqr@yahoo.com | xyz2 | SB12321 | 2013-04-05 13:24:49 | xyz@gmail.com |
  48. | 3 | c123@xyz.com | xyz3 | CC123 | 2013-04-05 13:24:49 | ccc@gmail.com |
  49.  
  50. select p_key_no,
  51. max(case when col_name = 'ALTEMAIL' then value end) ALTEMAIL,
  52. max(case when col_name = 'PASSWORD' then value end) PASSWORD,
  53. max(case when col_name = 'EMAIL' then value end) EMAIL
  54. from tracking_table
  55. where [table] ='emp_info'
  56. group by p_key_no
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement