Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.24 KB | None | 0 0
  1. RESUME_TABLE:
  2. WEEK | TOTAL_NEW | TOTAL_SOLVED
  3. 1 | 10 | 3
  4. 2 | 13 | 15
  5. 3 | 6 | 7
  6.  
  7. REPORT_TABLE:
  8. WEEK | PREV_TOTAL | NEW_CASES | SOLVED_CASES | NEW_TOTAL
  9. 1 | 0 | 10 | 3 | 7
  10. 2 | 7 | 13 | 15 | 5
  11. 3 | 5 | 6 | 7 | 4
  12.  
  13. 12:57:06 HR@vm_xe> l
  14. 1 select week
  15. 2 ,lag(total_cases_by_now - total_solved_by_now) over (order by week) prev_total
  16. 3 ,total_new new_cases
  17. 4 ,total_solved solved_cases
  18. 5 ,total_cases_by_now - total_solved_by_now new_total
  19. 6 from (
  20. 7 select week
  21. 8 ,total_new
  22. 9 ,total_solved
  23. 10 ,sum(total_new) over(order by week asc) as total_cases_by_now
  24. 11 ,sum(total_solved) over (order by week asc) as total_solved_by_now
  25. 12 from resume_table
  26. 13* )
  27. 12:57:07 HR@vm_xe> /
  28.  
  29. WEEK PREV_TOTAL NEW_CASES SOLVED_CASES NEW_TOTAL
  30. ---------- ------------ ---------- ------------ ----------
  31. 1 10 3 7
  32. 2 7 13 15 5
  33. 3 5 6 7 4
  34.  
  35. 3 rows selected.
  36.  
  37. Elapsed: 00:00:00.01
  38.  
  39. with resume_table as
  40. (
  41. select 1 week, 10 total_new, 3 total_solved from dual union all
  42. select 2 week, 13 total_new, 15 total_solved from dual union all
  43. select 3 week, 6 total_new, 7 total_solved from dual
  44. )
  45. select week, prev_total, total_new, total_solved, new_total
  46. from resume_table
  47. model
  48. dimension by (week)
  49. measures (total_new, total_solved, 0 prev_total, 0 new_total)
  50. rules sequential order
  51. (
  52. new_total[any] order by week =
  53. nvl(new_total[cv(week)-1], 0) + total_new[cv()] - total_solved[cv()]
  54. ,prev_total[any] order by week = nvl(new_total[cv(week)-1], 0)
  55. )
  56. order by week;
  57.  
  58. RESUME_LEFT
  59. WEEK | LEFT
  60. 1 | 7
  61. 2 | -2
  62. 3 | -1
  63.  
  64. CREATE VIEW resume_left
  65. (SELECT week,total_new-total_solved "left" FROM resume_table)
  66.  
  67. PREV_TOTAL=(SELECT sum(left) FROM RESUME_LEFT WHERE week<REPORT_TABLE.week)
  68.  
  69. PREV_TOTAL=(SELECT sum(total_new)-sum(total_solved)
  70. FROM resume_table
  71. WHERE week<REPORT_TABLE.week)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement