Advertisement
korso_kun

Untitled

Jan 24th, 2017
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.21 KB | None | 0 0
  1. select ss.ID,
  2. ss.PART_SER,
  3. ss.DATE_OPER,
  4. to_char(count(1) over(partition by ss.PART_SER, ss.DATE_OPER, ss.ID),
  5. '9999.99') CNT,
  6. case
  7. when not (ss.FULL_DATE_OPER > ss.DATE_CANCEL and
  8. ss.DATE_CANCEL is not null) and ss.PART_SER is not null then
  9. ss.PART_SER || ' *' ||
  10. to_char(count(1)
  11. over(partition by ss.PART_SER, ss.DATE_OPER, ss.ID),
  12. '9999.99')
  13. else
  14. null
  15. end PART_CNT
  16. from (select case
  17. when t1.IS_COMPLEX is null or t1.IS_COMPLEX = 0 then
  18. t.ID
  19. else
  20. (select min(ps.ID)
  21. from D_V_MP_PRESCRIBE_SPECS ps
  22. where ps.PID = t.ID
  23. and ps.NOMMODIF_ID = t1.NOMMODIF_ID)
  24. end ID,
  25. nvl((select tt.PARTY_SER
  26. from D_V_JURSTORE_EX tt
  27. where tt.UNITID = t1.ID),
  28. t1.PART_SER) PART_SER,
  29. nvl((select trunc(tt1.DATE_OPER)
  30. from D_V_JURSTORE tt1
  31. where tt1.UNITID = t1.ID),
  32. t1.EX_DATE) DATE_OPER,
  33. t.DATE_CANCEL,
  34. nvl((select tt1.DATE_OPER
  35. from D_V_JURSTORE tt1
  36. where tt1.UNITID = t1.ID),
  37. t1.EX_DATE) FULL_DATE_OPER
  38. from d_v_mp_prescribes t,
  39. d_v_hosp_histories_base hh,
  40. (select ps.ID,
  41. ps.PID,
  42. ps.PART_SER,
  43. ps.IS_COMPLEX + ps.IS_EXTEMPO IS_COMPLEX,
  44. trunc(ps.EX_DATE) EX_DATE,
  45. ps.NOMMODIF_ID
  46. from D_V_MP_PRESCRIBE_SPECS ps
  47. where ps.PART_SER is not null
  48. or exists
  49. (select null from D_V_JURSTORE j where j.UNITID = ps.ID)) t1
  50. where hh.ID = :HH_ID
  51. and hh.LPU = :LPU
  52. and t.DISEASECASE = hh.DISEASECASE @if(:HH_PRESCRIBES_ID)
  53. {
  54. and instr(';' || :HH_PRESCRIBES_ID || ';', ';' || t.ID || ';') > 0
  55. @}
  56. and t1.PID(+) = t.ID
  57. and t.MP_TYPE_CODE != 3
  58. and t.MP_CONDITION_CODE in (1, 2, 3, 4)
  59. and (t.HH_DEP = :HH_DEP_ID or :HH_DEP_ID = 0)) ss
  60. union
  61. select ss1.ID,
  62. ss1.PART_SER,
  63. ss1.PLAN_DATE,
  64. '+' CNT,
  65. case
  66. when not (ss1.PLAN_DATE > ss1.DATE_CANCEL and
  67. ss1.DATE_CANCEL is not null) and ss1.PART_SER is not null then
  68. '+'
  69. else
  70. null
  71. end PART_CNT
  72. from (select case
  73. when t1.IS_COMPLEX is null or t1.IS_COMPLEX = 0 then
  74. t.ID
  75. else
  76. (select min(ps.ID)
  77. from D_V_MP_PRESCRIBE_SPECS ps
  78. where ps.PID = t.ID
  79. and ps.NOMMODIF_ID = t1.NOMMODIF_ID)
  80. end ID,
  81. nvl((select tt.PARTY_SER
  82. from D_V_JURSTORE_EX tt
  83. where tt.UNITID = t1.ID),
  84. t1.PART_SER) PART_SER,
  85. t1.plan_date,
  86. t.DATE_CANCEL
  87. from d_v_mp_prescribes t,
  88. d_v_hosp_histories_base hh,
  89. (select ps.ID,
  90. ps.PID,
  91. ps.PART_SER,
  92. ps.IS_COMPLEX + ps.IS_EXTEMPO IS_COMPLEX,
  93. trunc(ps.EX_DATE) EX_DATE,
  94. ps.PLAN_DATE,
  95. ps.NOMMODIF_ID
  96. from D_V_MP_PRESCRIBE_SPECS ps
  97. where ps.PART_SER is null
  98. or not exists
  99. (select null from D_V_JURSTORE j where j.UNITID = ps.ID)) t1
  100. where hh.ID = :HH_ID
  101. and hh.LPU = :LPU
  102. and t.DISEASECASE = hh.DISEASECASE @if(:HH_PRESCRIBES_ID)
  103. {
  104. and instr(';' || :HH_PRESCRIBES_ID || ';', ';' || t.ID || ';') > 0
  105. @}
  106. and t1.PID(+) = t.ID
  107. and t.MP_TYPE_CODE != 3
  108. and t.MP_CONDITION_CODE in (1, 2, 3, 4)
  109. and (t.HH_DEP = :HH_DEP_ID or :HH_DEP_ID = 0)) ss1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement