powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как оптимизировать громоздкий запрос sql ?
25 сообщений из 73, страница 2 из 3
Как оптимизировать громоздкий запрос sql ?
    #39673145
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александер234MaximaXXL, собрал я запрос теперь формируется 14 сек против минуты

и не правильно ))))
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39673146
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александер234,

Тогда уже вывидите такое, для полного понимания:

Код: plsql
1.
2.
3.
4.
select to_char(DDATES,'dd.mm.yyyy hh24:mi:ss') 
from
table (cast (d_pkg_dat_tools.DATES_IN_RANGE(to_date('01-07-2018', 'dd-mm-yyyy'),to_date('31-07-2018', 'dd-mm-yyyy'),1) as D_CL_DATE)) t1
order by t1.DDATES



и такое:

Код: plsql
1.
2.
3.
select to_char(plan_date, 'dd.mm.yyyy hh24:mi:ss') 
from D_V_HPK_PLAN_JOURNALS_ADD 
where plan_date >= to_date('01-07-2018', 'dd-mm-yyyy') and plan_date < to_date('31-07-2018', 'dd-mm-yyyy')+1
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39673149
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DВААлександер234MaximaXXL, собрал я запрос теперь формируется 14 сек против минуты

и не правильно ))))

такое тоже бывает
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39673150
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александер234MaximaXXL, собрал я запрос теперь формируется 14 сек против минуты , но загрузка через web форму стала по легче, но все ровно долговато. Я так понимаю мне теперь в сторону HTML копать надо ?

Смотря что собрали
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39673170
MaximaXXL,
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39673171
MaximaXXL,
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39673172
DВА, И почему же неправильно ?
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39673174
MaximaXXL, А Собрал я вот что:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
select
     t1.DDATES,
     initcap(to_char(t1.DDATES,'DAY','NLS_DATE_LANGUAGE=RUSSIAN')) P_D_RUS,
     
(select null
||'['||
count(1)
||']'|| 
count(case when PAYMENT_KIND_ID=20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID=24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID=21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID=33232    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID=33233    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
FROM D_V_HPK_PLAN_JOURNALS_ADD WHERE trunc(PLAN_DATE)=trunc(t1.DDATES) AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233)) 

as DAY_TOTAL ,  
              
(SELECT COUNT(1) 
||' ('||COUNT(decode(PAYMENT_KIND_ID,20319110,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,24439460,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,21178087,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33232,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33233,1))
||')'
FROM D_V_HPK_PLAN_JOURNALS_ADD 
where trunc(plan_date) >= to_date('01-07-2018', 'dd-mm-yyyy') and trunc(plan_date) <= to_date('31-07-2018', 'dd-mm-yyyy')
AND HOSP_PLAN_KIND=75600447
AND nvl(HOSP_HISTORY_DS,0) = 0 
AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as NO_1_TOTAL,


(select null
||'['||
count(1)
||']'|| 
count(case when PAYMENT_KIND_ID=20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID=24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID=21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID=33232    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID=33233    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
FROM D_V_HPK_PLAN_JOURNALS_ADD WHERE trunc(PLAN_DATE)=trunc(t1.DDATES)AND HOSP_PLAN_KIND= 75600447 AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as NO_1,

(SELECT COUNT(1) 
||' ('||COUNT(decode(PAYMENT_KIND_ID,20319110,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,24439460,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,21178087,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33232,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33233,1))
||')'
FROM D_V_HPK_PLAN_JOURNALS_ADD 
where trunc(plan_date) >= to_date('01-07-2018', 'dd-mm-yyyy') and trunc(plan_date) <= to_date('31-07-2018', 'dd-mm-yyyy') 
AND HOSP_PLAN_KIND = 75600446
AND nvl(HOSP_HISTORY_DS,0) = 0 
AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as NO_2_TOTAL,


(select null
||'['||
count(1)
||']'|| 
count(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
FROM D_V_HPK_PLAN_JOURNALS_ADD WHERE trunc(PLAN_DATE)=trunc(t1.DDATES)AND HOSP_PLAN_KIND = 75600446 AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as NO_2,


(SELECT COUNT(1) 
||' ('||COUNT(decode(PAYMENT_KIND_ID,20319110,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,24439460,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,21178087,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33232,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33233,1))
||')'
FROM D_V_HPK_PLAN_JOURNALS_ADD 
where trunc(plan_date) >= to_date('01-07-2018', 'dd-mm-yyyy') and trunc(plan_date) <= to_date('31-07-2018', 'dd-mm-yyyy')
AND HOSP_PLAN_KIND = 75600446
AND nvl(HOSP_HISTORY_DS,0) = 0 
AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as NO_3_TOTAL,

(select null
||'['||
count(1)
||']'|| 
count(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
FROM D_V_HPK_PLAN_JOURNALS_ADD WHERE trunc(PLAN_DATE)=trunc(t1.DDATES)AND HOSP_PLAN_KIND = 75600449 AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as NO_3,

(SELECT COUNT(1) 
||' ('||COUNT(decode(PAYMENT_KIND_ID,20319110,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,24439460,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,21178087,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33232,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33233,1))
||')'
FROM D_V_HPK_PLAN_JOURNALS_ADD 
where trunc(plan_date) >= to_date('01-07-2018', 'dd-mm-yyyy') and trunc(plan_date) <= to_date('31-07-2018', 'dd-mm-yyyy') 
AND HOSP_PLAN_KIND = 75600446
AND nvl(HOSP_HISTORY_DS,0) = 0 
AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as NO_4_TOTAL,


(select null
||'['||
count(1)
||']'|| 
count(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
FROM D_V_HPK_PLAN_JOURNALS_ADD WHERE trunc(PLAN_DATE)=trunc(t1.DDATES)AND HOSP_PLAN_KIND = 75600045  AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as NO_4,

(SELECT COUNT(1) 
||' ('||COUNT(decode(PAYMENT_KIND_ID,20319110,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,24439460,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,21178087,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33232,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33233,1))
||')'
FROM D_V_HPK_PLAN_JOURNALS_ADD 
where trunc(plan_date) >= to_date('01-07-2018', 'dd-mm-yyyy') and trunc(plan_date) <= to_date('31-07-2018', 'dd-mm-yyyy') 
AND HOSP_PLAN_KIND = 89730007
AND nvl(HOSP_HISTORY_DS,0) = 0 
AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as NO_5_TOTAL,

(select null
||'['||
count(1)
||']'|| 
count(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
FROM D_V_HPK_PLAN_JOURNALS_ADD WHERE trunc(PLAN_DATE)=trunc(t1.DDATES)AND HOSP_PLAN_KIND = 89730007  AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as NO_5,


(SELECT COUNT(1) 
||' ('||COUNT(decode(PAYMENT_KIND_ID,20319110,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,24439460,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,21178087,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33232,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33233,1))
||')'
FROM D_V_HPK_PLAN_JOURNALS_ADD 
where trunc(plan_date) >= to_date('01-07-2018', 'dd-mm-yyyy') and trunc(plan_date) <= to_date('31-07-2018', 'dd-mm-yyyy') 
AND HOSP_PLAN_KIND = 75600448
AND nvl(HOSP_HISTORY_DS,0) = 0 
AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as PNO_1_TOTAL,

(select null
||'['||
count(1)
||']'|| 
count(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
FROM D_V_HPK_PLAN_JOURNALS_ADD WHERE trunc(PLAN_DATE)=trunc(t1.DDATES)AND HOSP_PLAN_KIND = 75600448  AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as PNO_1,


(SELECT COUNT(1) 
||' ('||COUNT(decode(PAYMENT_KIND_ID,20319110,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,24439460,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,21178087,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33232,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33233,1))
||')'
FROM D_V_HPK_PLAN_JOURNALS_ADD 
where trunc(plan_date) >= to_date('01-07-2018', 'dd-mm-yyyy') and trunc(plan_date) <= to_date('31-07-2018', 'dd-mm-yyyy') 
AND HOSP_PLAN_KIND = 75705825
AND nvl(HOSP_HISTORY_DS,0) = 0 
AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as DNEV_TOTAL,


(select null
||'['||
count(1)
||']'|| 
count(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
FROM D_V_HPK_PLAN_JOURNALS_ADD WHERE trunc(PLAN_DATE)=trunc(t1.DDATES)AND HOSP_PLAN_KIND = 75705825  AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as DNEV,

--- ТОТАЛ

(SELECT COUNT(1) 
||' ('||COUNT(decode(PAYMENT_KIND_ID,20319110,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,24439460,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,21178087,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33232,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33233,1))
||')'
FROM D_V_HPK_PLAN_JOURNALS_ADD 
where trunc(plan_date) >= to_date('01-07-2018', 'dd-mm-yyyy') and trunc(plan_date) <= to_date('31-07-2018', 'dd-mm-yyyy') 
--AND HOSP_PLAN_KIND = 75705825
AND nvl(HOSP_HISTORY_DS,0) = 0 
AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as TOTAL


    from
     table (cast (d_pkg_dat_tools.DATES_IN_RANGE(to_date('01-07-2018', 'dd-mm-yyyy'),to_date('31-07-2018', 'dd-mm-yyyy'),1) as D_CL_DATE)) t1
    order by t1.DDATES
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39673175
Спрашивайте постараюсь прояснить непонятные моменты
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39673198
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александер234,

Везет Вам что у меня время есть =)

Почему неправильно - потому что программист должен быть внимательным (аки доктор )
Смотрите красный маркер под спойлером

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
select
     t1.DDATES,
     initcap(to_char(t1.DDATES,'DAY','NLS_DATE_LANGUAGE=RUSSIAN')) P_D_RUS,
     
(select null
||'['||
count(1)
||']'|| 
count(case when PAYMENT_KIND_ID=20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID=24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID=21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID=33232    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID=33233    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
FROM D_V_HPK_PLAN_JOURNALS_ADD WHERE trunc(PLAN_DATE)=trunc(t1.DDATES) AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233)) 

as DAY_TOTAL ,  
              
(SELECT COUNT(1) 
||' ('||COUNT(decode(PAYMENT_KIND_ID,20319110,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,24439460,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,21178087,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33232,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33233,1))
||')'
FROM D_V_HPK_PLAN_JOURNALS_ADD 
where trunc(plan_date) >= to_date('01-07-2018', 'dd-mm-yyyy') and trunc(plan_date) <= to_date('31-07-2018', 'dd-mm-yyyy')
AND HOSP_PLAN_KIND=75600447
AND nvl(HOSP_HISTORY_DS,0) = 0 
AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as NO_1_TOTAL,


(select null
||'['||
count(1)
||']'|| 
count(case when PAYMENT_KIND_ID=20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID=24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID=21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID=33232    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID=33233    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
FROM D_V_HPK_PLAN_JOURNALS_ADD WHERE trunc(PLAN_DATE)=trunc(t1.DDATES)AND HOSP_PLAN_KIND= 75600447 AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as NO_1,

(SELECT COUNT(1) 
||' ('||COUNT(decode(PAYMENT_KIND_ID,20319110,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,24439460,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,21178087,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33232,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33233,1))
||')'
FROM D_V_HPK_PLAN_JOURNALS_ADD 
where trunc(plan_date) >= to_date('01-07-2018', 'dd-mm-yyyy') and trunc(plan_date) <= to_date('31-07-2018', 'dd-mm-yyyy') 
AND HOSP_PLAN_KIND = 75600446
AND nvl(HOSP_HISTORY_DS,0) = 0 
AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as NO_2_TOTAL,


(select null
||'['||
count(1)
||']'|| 
count(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
FROM D_V_HPK_PLAN_JOURNALS_ADD WHERE trunc(PLAN_DATE)=trunc(t1.DDATES)AND HOSP_PLAN_KIND = 75600446 AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as NO_2,


(SELECT COUNT(1) 
||' ('||COUNT(decode(PAYMENT_KIND_ID,20319110,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,24439460,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,21178087,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33232,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33233,1))
||')'
FROM D_V_HPK_PLAN_JOURNALS_ADD 
where trunc(plan_date) >= to_date('01-07-2018', 'dd-mm-yyyy') and trunc(plan_date) <= to_date('31-07-2018', 'dd-mm-yyyy')
AND HOSP_PLAN_KIND = 75600446
AND nvl(HOSP_HISTORY_DS,0) = 0 
AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as NO_3_TOTAL,

(select null
||'['||
count(1)
||']'|| 
count(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
FROM D_V_HPK_PLAN_JOURNALS_ADD WHERE trunc(PLAN_DATE)=trunc(t1.DDATES)AND HOSP_PLAN_KIND = 75600449 AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as NO_3,

(SELECT COUNT(1) 
||' ('||COUNT(decode(PAYMENT_KIND_ID,20319110,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,24439460,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,21178087,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33232,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33233,1))
||')'
FROM D_V_HPK_PLAN_JOURNALS_ADD 
where trunc(plan_date) >= to_date('01-07-2018', 'dd-mm-yyyy') and trunc(plan_date) <= to_date('31-07-2018', 'dd-mm-yyyy') 
AND HOSP_PLAN_KIND = 75600446
AND nvl(HOSP_HISTORY_DS,0) = 0 
AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as NO_4_TOTAL,


(select null
||'['||
count(1)
||']'|| 
count(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
FROM D_V_HPK_PLAN_JOURNALS_ADD WHERE trunc(PLAN_DATE)=trunc(t1.DDATES)AND HOSP_PLAN_KIND = 75600045  AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as NO_4,

(SELECT COUNT(1) 
||' ('||COUNT(decode(PAYMENT_KIND_ID,20319110,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,24439460,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,21178087,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33232,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33233,1))
||')'
FROM D_V_HPK_PLAN_JOURNALS_ADD 
where trunc(plan_date) >= to_date('01-07-2018', 'dd-mm-yyyy') and trunc(plan_date) <= to_date('31-07-2018', 'dd-mm-yyyy') 
AND HOSP_PLAN_KIND = 89730007
AND nvl(HOSP_HISTORY_DS,0) = 0 
AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as NO_5_TOTAL,

(select null
||'['||
count(1)
||']'|| 
count(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
FROM D_V_HPK_PLAN_JOURNALS_ADD WHERE trunc(PLAN_DATE)=trunc(t1.DDATES)AND HOSP_PLAN_KIND = 89730007  AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as NO_5,


(SELECT COUNT(1) 
||' ('||COUNT(decode(PAYMENT_KIND_ID,20319110,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,24439460,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,21178087,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33232,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33233,1))
||')'
FROM D_V_HPK_PLAN_JOURNALS_ADD 
where trunc(plan_date) >= to_date('01-07-2018', 'dd-mm-yyyy') and trunc(plan_date) <= to_date('31-07-2018', 'dd-mm-yyyy') 
AND HOSP_PLAN_KIND = 75600448
AND nvl(HOSP_HISTORY_DS,0) = 0 
AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as PNO_1_TOTAL,

(select null
||'['||
count(1)
||']'|| 
count(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
FROM D_V_HPK_PLAN_JOURNALS_ADD WHERE trunc(PLAN_DATE)=trunc(t1.DDATES)AND HOSP_PLAN_KIND = 75600448  AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as PNO_1,


(SELECT COUNT(1) 
||' ('||COUNT(decode(PAYMENT_KIND_ID,20319110,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,24439460,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,21178087,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33232,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33233,1))
||')'
FROM D_V_HPK_PLAN_JOURNALS_ADD 
where trunc(plan_date) >= to_date('01-07-2018', 'dd-mm-yyyy') and trunc(plan_date) <= to_date('31-07-2018', 'dd-mm-yyyy') 
AND HOSP_PLAN_KIND = 75705825
AND nvl(HOSP_HISTORY_DS,0) = 0 
AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as DNEV_TOTAL,


(select null
||'['||
count(1)
||']'|| 
count(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
FROM D_V_HPK_PLAN_JOURNALS_ADD WHERE trunc(PLAN_DATE)=trunc(t1.DDATES)AND HOSP_PLAN_KIND = 75705825  AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as DNEV,

--- ТОТАЛ

(SELECT COUNT(1) 
||' ('||COUNT(decode(PAYMENT_KIND_ID,20319110,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,24439460,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,21178087,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33232,1))
||'/'|| COUNT(decode(PAYMENT_KIND_ID,33233,1))
||')'
FROM D_V_HPK_PLAN_JOURNALS_ADD 
where trunc(plan_date) >= to_date('01-07-2018', 'dd-mm-yyyy') and trunc(plan_date) <= to_date('31-07-2018', 'dd-mm-yyyy') 
--AND HOSP_PLAN_KIND = 75705825
AND nvl(HOSP_HISTORY_DS,0) = 0 
AND PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))

as TOTAL


    from
     table (cast (d_pkg_dat_tools.DATES_IN_RANGE(to_date('01-07-2018', 'dd-mm-yyyy'),to_date('31-07-2018', 'dd-mm-yyyy'),1) as D_CL_DATE)) t1
    order by t1.DDATES




Да и я думал что Вы продолжите переделку
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39673212
MaximaXXL, Да и я думал что Вы продолжите переделку. Какую переделку ? Этот код можно еще улучшить ?
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39673213
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александер234Спрашивайте постараюсь прояснить непонятные моменты
если переделываете то можно продолжить (но очень внимательно)

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 
select
 case
,case
...
FROM 
  table (cast ... t1
 ,D_V_HPK_PLAN_JOURNALS_ADD 
where 
       plan_date >= to_date('01-07-2018', 'dd-mm-yyyy') and plan_date < to_date('31-07-2018', 'dd-mm-yyyy')+1
 and ...
 and коды in ()
....

.....
stax
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39673215
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александер234,

И я почему-то думал что первый раз Вы остановитесь на вот таком варианте (а не закините селект на пол дороги)

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
select
     t1.DDATES,
     initcap(to_char(t1.DDATES,'DAY','NLS_DATE_LANGUAGE=RUSSIAN')) P_D_RUS,

  '['||count(case when                                                           then 1 end)
||']'||count(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)
     
as DAY_TOTAL ,  
              
        sum(COUNT(case when                                nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600447 then 1 end)) over(order by null)
||' ('||sum(COUNT(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600447 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600447 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600447 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600447 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600447 then 1 end)) over(order by null)
||')'

as NO_1_TOTAL,

  '['||count(case when                                                               HOSP_PLAN_KIND = 75600447 then 1 end)
||']'||count(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600447 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600447 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600447 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600447 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600447 then 1 end)

as NO_1,

        sum(COUNT(case when                                nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600446 then 1 end)) over(order by null)
||' ('||sum(COUNT(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600446 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600446 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600446 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600446 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600446 then 1 end)) over(order by null)
||')'

as NO_2_TOTAL,

  '['||count(case when                                                               HOSP_PLAN_KIND = 75600446 then 1 end)
||']'||count(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600446 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600446 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600446 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600446 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600446 then 1 end)

as NO_2,

        sum(COUNT(case when                                nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600446 then 1 end)) over(order by null)
||' ('||sum(COUNT(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600446 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600446 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600446 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600446 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600446 then 1 end)) over(order by null)
||')'

as NO_3_TOTAL,

  '['||count(case when                                                               HOSP_PLAN_KIND = 75600449 then 1 end)
||']'||count(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600449 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600449 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600449 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600449 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600449 then 1 end)

as NO_3,

        sum(COUNT(case when                                nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600446 then 1 end)) over(order by null)
||' ('||sum(COUNT(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600446 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600446 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600446 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600446 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600446 then 1 end)) over(order by null)
||')'

as NO_4_TOTAL,

  '['||count(case when                                                               HOSP_PLAN_KIND = 75600045 then 1 end)
||']'||count(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600045 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600045 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600045 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600045 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600045 then 1 end)

as NO_4,

        sum(COUNT(case when                                nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 89730007 then 1 end)) over(order by null)
||' ('||sum(COUNT(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 89730007 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 89730007 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 89730007 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 89730007 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 89730007 then 1 end)) over(order by null)
||')'

as NO_5_TOTAL,

  '['||count(case when                                                               HOSP_PLAN_KIND = 89730007 then 1 end)
||']'||count(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 89730007 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 89730007 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 89730007 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 89730007 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 89730007 then 1 end)

as NO_5,

        sum(COUNT(case when                                nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600448 then 1 end)) over(order by null)
||' ('||sum(COUNT(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600448 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600448 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600448 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600448 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600448 then 1 end)) over(order by null)
||')'

as PNO_1_TOTAL,

  '['||count(case when                                                               HOSP_PLAN_KIND = 75600448 then 1 end)
||']'||count(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600448 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600448 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600448 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600448 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75600448 then 1 end)

as PNO_1,

        sum(COUNT(case when                                nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75705825 then 1 end)) over(order by null)
||' ('||sum(COUNT(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75705825 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75705825 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75705825 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75705825 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75705825 then 1 end)) over(order by null)
||')'

as DNEV_TOTAL,

  '['||count(case when                                                               HOSP_PLAN_KIND = 75705825 then 1 end)
||']'||count(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75705825 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75705825 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75705825 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75705825 then 1 end)
||'/'||count(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 AND HOSP_PLAN_KIND = 75705825 then 1 end)

as DNEV,

--- ТОТАЛ

        sum(COUNT(case when                                nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)) over(order by null)
||' ('||sum(COUNT(case when PAYMENT_KIND_ID = 20319110 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 24439460 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 21178087 AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 33232    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)) over(order by null)
||'/'|| sum(COUNT(case when PAYMENT_KIND_ID = 33233    AND nvl(HOSP_HISTORY_DS,0) = 0 then 1 end)) over(order by null)
||')'

as TOTAL

from table (cast (d_pkg_dat_tools.DATES_IN_RANGE(to_date('01-07-2018', 'dd-mm-yyyy'),to_date('31-07-2018', 'dd-mm-yyyy'),1) as D_CL_DATE)) t1
     left join D_V_HPK_PLAN_JOURNALS_ADD on (PLAN_DATE = t1.DDATES and PAYMENT_KIND_ID in (20319110, 24439460, 21178087, 33232, 33233))
group by t1.DDATES, initcap(to_char(t1.DDATES,'DAY','NLS_DATE_LANGUAGE=RUSSIAN')) P_D_RUS
order by t1.DDATES



Оставил Ваши ошибки для Total3 and Total4
Сам скрипт проверять нет ни вашей базы, ни особого желания, может где и накосячил со скобками
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39673217
MaximaXXL, Спасибо тебе ))!
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39673221
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александер234Этот код можно еще улучшить ?
Ну исписать полотенце много ума не надо.
А вот подумать и не шариться многократно по одним и тем же таблицам - требует не только внимания к деталям, но соображения, здравого смысла и даже немного фантазии.
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39679106
MaximaXXL, Привет, снова нужна помощь по запросу одному. Поможешь ?
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39679111
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александер234,

Тут многие могут помочь ...
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39679112
Вообщем скидываю
Громоздкий селект как поправить не знаю

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT h.hc_date,
case
when h.num is not null then (select num||' заседание '||to_char(h.hc_date,'yyyy')||' года' from d_hospcomm where hc_date=h.hc_date)
else (select count(*)||' заседание '||to_char(h.hc_date,'yyyy')||' года' from d_hospcomm m where to_char(m.hc_date,'yyyy')=to_char(h.hc_date,'yyyy') and m.hc_date <= h.hc_date) 
end as num,
case
when h.num is not null then (select num from d_hospcomm where hc_date=h.hc_date)
else (select count(*) from d_hospcomm m where to_char(m.hc_date,'yyyy')=to_char(h.hc_date,'yyyy') and m.hc_date <= h.hc_date) 
end as num_s,
(select count(*) from D_HOSP_ADD where trunc(h.hc_date)=trunc(dec_date)) as kol     
FROM D_HOSPCOMM h
ORDER BY h.hc_date
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39679116
MaximaXXL, Не знаю как многие, но что то в тот раз помог мне только ты.
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39679131
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александер234Вообщем скидываю
Громоздкий селект как поправить не знаю

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT h.hc_date,
case
when h.num is not null then (select num||' заседание '||to_char(h.hc_date,'yyyy')||' года' from d_hospcomm where hc_date=h.hc_date)
else (select count(*)||' заседание '||to_char(h.hc_date,'yyyy')||' года' from d_hospcomm m where to_char(m.hc_date,'yyyy')=to_char(h.hc_date,'yyyy') and m.hc_date <= h.hc_date) 
end as num,
case
when h.num is not null then (select num from d_hospcomm where hc_date=h.hc_date)
else (select count(*) from d_hospcomm m where to_char(m.hc_date,'yyyy')=to_char(h.hc_date,'yyyy') and m.hc_date <= h.hc_date) 
end as num_s,
(select count(*) from D_HOSP_ADD where trunc(h.hc_date)=trunc(dec_date)) as kol     
FROM D_HOSPCOMM h
ORDER BY h.hc_date


Он не громоздкий, он туповатый, как бы не прискорбно это не звучало

Первое что надо делать:
Код: plsql
1.
2.
3.
4.
5.
6.
SELECT h.hc_date,
nvl(h.num, (select count(*) from d_hospcomm m where m.hc_date between trunc(h.hc_date,'yyyy') and h.hc_date)) ||' заседание '||to_char(h.hc_date,'yyyy')||' года' num,
nvl(h.num, (select count(*) from d_hospcomm m where m.hc_date between trunc(h.hc_date,'yyyy') and h.hc_date)) num_s,
(select count(*) from D_HOSP_ADD where trunc(h.hc_date)=trunc(dec_date)) as kol     
FROM D_HOSPCOMM h
ORDER BY h.hc_date


Второе - вывести данные:
Код: plsql
1.
2.
select to_char(hc_date ,'dd.mm.yyyy hh24:mi:ss') from D_HOSPCOMM 
select to_char(dec_date,'dd.mm.yyyy hh24:mi:ss') from D_HOSP_ADD 
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39679139
MaximaXXL, Да ,эти говнокоды писал не я .Достались мне. Люди работать не могут вешаются .
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39679152
MaximaXXL,
Второй пунк не понял . Вывести и скинуть скрин сюда ?
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39679153
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александер234,

Я уже где-то писал, если не сильны (лень копаться) - отказывайтесь ... или берите много времени.
А дальше: читать и эксперементировать ...
Да, это не быстро, но Вам досталось, а на форуме переписали ... это ... ну как бы не правильно наверно
На сайте есть раздел Работа, там люди помогают за деньги. Т.е. если Вы получаете деньги и не имеете возможности учиться. Отдаете часть денег и за Вас все сделают.
Но мой Вам совет, проще читать и эксперементировать. Это значит Вы учитесь, а Вам за это еще и платят.
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39679157
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александер234MaximaXXL,
Второй пунк не понял . Вывести и скинуть скрин сюда ?

Ну скажем так, они мне не нужны, это для Вас. Посмотреть, если нет времени в обоих таблицах то trunc(h.hc_date)=trunc(dec_date) замедляет процесс поиска и его надо менять на h.hc_date = dec_date. Это было в этой же ветке.
Я еще раз повторюсь - форум должен помогать учиться, а не делать работу за Вас.
То что я переписал прошлый селект, думая что помогаю Вам понять, что надо делать, похоже Вас наставило на неверный путь.
Вы не стали думать, а просто пришли с новой проблеммой, а это очень прискорбно мне осознавать.
Я хотел научить Вас как правильно и по шагам делать преобразования в больших селектах, а получилась "медвежья услуга" Вы отдали старый селект даже не проанализировав что на что и почему менялось
...
Рейтинг: 0 / 0
Как оптимизировать громоздкий запрос sql ?
    #39679158
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александер234Громоздкий селект как поправить не знаю список рекомендаций как и в прошлый раз - рефакторите скалярные подзапросы из select-листа в форму джойна. чтобы многократно не бегать в одни и те же таблицы... а дальше уже пивотом или аналогами на case/decode разворачивайте в нужный вид.
...
Рейтинг: 0 / 0
25 сообщений из 73, страница 2 из 3
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как оптимизировать громоздкий запрос sql ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]