客户反馈报表查询比较慢 平均要跑164s ~170s sql部分如下
SQL> explain plan for Select * From (select '期初' 业务大类,
2 '-------' 业务分类,
3 sum(西药成本) 西药成本,
4 sum(西药零售) 西药零售,
5 sum(中成药成本) 中成药成本,
6 sum(中成药零售) 中成药零售,
7 sum(中药成本合计) 中药成本,
8 sum(中药零售合计) 中药零售,
9 sum(中药成本合计+西药成本合计) 成本合计,
10 sum(中药零售合计+西药零售合计) 零售合计
11 from (select --西药房期初
12 sum(case when 药品类型i=1 then A.变化后库存数量*A.成本单价 else 0 end ) 西药成本
13 ,SUM( case when 药品类型i=1 then A.变化后库存数量*A.零售单价 else 0 end ) 西药零售,
14 sum(case when (药品类型i=2 or 药品类型i=4) then A.变化后库存数量*A.成本单价 else 0 end ) 中成药成本,
15 SUM( case when (药品类型i=2 or 药品类型i=4) then A.变化后库存数量*A.零售单价 else 0 end ) 中成药零售,
16 sum(A.变化后库存数量*A.成本单价) As 西药成本合计,
17 sum(A.变化后库存数量*A.零售单价) As 西药零售合计,
18 0 中药成本合计,
19 0 中药零售合计
20 from dug_d西药房库存变化明细 A
21 inner join (select 批次序号i,药房序号I,药品序号I,max(系统序号) As 系统序号 from dug_d西药房库存变化明细 where 操作时间<to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss')
22 and 隶属机构I='1' and (药房序号I='14' or '14'='0')
23 group by 药房序号I,药品序号I,批次序号i) B on A.系统序号=B.系统序号
24 inner join doc_t药品目录_价格 bb on bb.系统序号 = b.药品序号i
25 inner join doc_t药品目录 cc on cc.系统序号 = bb.药品目录序号i
26 inner join doc_t药典目录 dd on dd.系统序号 = cc.药典序号i
27 where 药品类型i !=5
28 union all
29 select
30 0 西药成本
31 ,0 西药零售,
32 0 中成药成本
33 ,0 中成药零售
34 ,0 西药成本合计
35 ,0 西药零售合计,
36 sum(A.变化后库存数量*A.成本单价) As 中药成本合计,
37 sum(A.变化后库存数量*A.零售单价) As 中药零售合计
38 from dug_d中药房库存变化明细 A
39 inner join (select 批次序号i,药房序号I,药品序号I,max(系统序号) As 系统序号 from dug_d中药房库存变化明细 where 操作时间<to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss')
40 and 隶属机构I='1' and (药房序号I='14' or '14'='0')
41 group by 药房序号I,药品序号I,批次序号i) B on A.系统序号=B.系统序号
42 ) union all
43 select '入库' 业务大类,
44 '药房领用' 业务分类,
45 sum(西药成本) 西药成本,
46 sum(西药零售) 西药零售,
47 sum(中成药成本) 中成药成本,
48 sum(中成药零售) 中成药零售,
49 sum(中药成本合计) 中药成本,
50 sum(中药零售合计) 中药零售,
51 sum(中药成本合计+西药成本合计) 成本合计,
52 sum(中药零售合计+西药零售合计) 零售合计
53 from (
54 select
55 sum(case when 业务来源 in ('药房申领','药房申领冲销') and 药品类型i=1 then b.成本单价*b.变化数量 else 0 end ) As 西药成本,
56 sum( case when 业务来源 in ('药房申领','药房申领冲销') and 药品类型i=1 then b.零售单价*b.变化数量 else 0 end ) 西药零售,
57 sum(case when (药品类型i=2 or 药品类型i=4) and 业务来源 in ('药房申领','药房申领冲销') then b.成本单价*b.变化数量 else 0 end ) As 中成药成本,
58 sum( case when (药品类型i=2 or 药品类型i=4) and 业务来源 in ('药房申领','药房申领冲销') then b.零售单价*b.变化数量 else 0 end ) 中成药零售,
59 sum(case when 业务来源 in ('药房申领','药房申领冲销') then b.成本单价*b.变化数量 else 0 end ) As 西药成本合计,
60 sum( case when 业务来源 in ('药房申领','药房申领冲销') then b.零售单价*b.变化数量 else 0 end ) As 西药零售合计,
61 0 中药成本合计,
62 0 中药零售合计
63 from dug_d西药房库存变化明细 b
64 inner join doc_t药品目录_价格 bb on bb.系统序号 = b.药品序号i
65 inner join doc_t药品目录 cc on cc.系统序号 = bb.药品目录序号i
66 inner join doc_t药典目录 dd on dd.系统序号 = cc.药典序号i
67 where b.隶属机构I='1' and 药品类型i !=5 and (药房序号I='14' or '14'='0')
68 and b.操作时间 between to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
69 group by 药房序号I,药品序号I,批次序号i
70 union all
71 select
72 0 西药成本
73 ,0 西药零售,
74 0 中成药成本
75 ,0 中成药零售
76 ,0 西药成本合计
77 ,0 西药零售合计,
78 sum(case when 业务来源 in ('药房申领','药房申领冲销') then b.成本单价*b.变化数量 else 0 end ) 中药成本合计,
79 sum( case when 业务来源 in ('药房申领','药房申领冲销') then b.零售单价*b.变化数量 else 0 end ) 中药零售合计
80 from dug_d中药房库存变化明细 b
81 where b.隶属机构I='1' and (药房序号I='14' or '14'='0')
82 and b.操作时间 between to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
83 group by 药房序号I,药品序号I,批次序号i
84 ) union all
85 select
86 '入库' 业务大类,
87 '科室退货' 业务分类,
88 sum(西药成本) 西药成本,
89 sum(西药零售) 西药零售,
90 sum(中成药成本) 中成药成本,
91 sum(中成药零售) 中成药零售,
92 sum(中药成本合计) 中药成本合计,
93 sum(中药零售合计) 中药零售合计,
94 sum(中药成本合计+西药成本合计) 成本合计,
95 sum(中药零售合计+西药零售合计) 零售合计
96 from (select
97 sum(case when 业务来源 in ('科室退货','科室退货冲销') and 药品类型i=1 then b.成本单价*b.变化数量 else 0 end ) As 西药成本,
98 sum( case when 业务来源 in ('科室退货','科室退货冲销') and 药品类型i=1 then b.零售单价*b.变化数量 else 0 end ) 西药零售,
99 sum(case when (药品类型i=2 or 药品类型i=4) and 业务来源 in ('科室退货','科室退货冲销') then b.成本单价*b.变化数量 else 0 end ) As 中成药成本,
100 sum( case when (药品类型i=2 or 药品类型i=4) and 业务来源 in ('科室退货','科室退货冲销') then b.零售单价*b.变化数量 else 0 end ) 中成药零售,
101 sum(case when 业务来源 in ('科室退货','科室退货冲销') then b.成本单价*b.变化数量 else 0 end ) As 西药成本合计,
102 sum( case when 业务来源 in ('科室退货','科室退货冲销') then b.零售单价*b.变化数量 else 0 end ) As 西药零售合计,
103 0 中药成本合计,
104 0 中药零售合计
105 from dug_d西药房库存变化明细 b
106 inner join doc_t药品目录_价格 bb on bb.系统序号 = b.药品序号i
107 inner join doc_t药品目录 cc on cc.系统序号 = bb.药品目录序号i
108 inner join doc_t药典目录 dd on dd.系统序号 = cc.药典序号i
109 where b.隶属机构I='1' and 药品类型i !=5 and (药房序号I='14' or '14'='0')
110 and b.操作时间 between to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
111 group by 药房序号I,药品序号I,批次序号i
112 union all
113 select
114 0 As 西药成本,
115 0 As 西药零售,
116 0 As 中成药成本,
117 0 As 中成药零售,
118 0 As 西药成本合计,
119 0 As 西药零售合计,
120 sum(case when 业务来源 in ('科室退货','科室退货冲销') then b.成本单价*b.变化数量 else 0 end ) As 中药成本合计,
121 sum( case when 业务来源 in ('科室退货','科室退货冲销') then b.零售单价*b.变化数量 else 0 end ) As 中药零售合计
122 from dug_d中药房库存变化明细 b
123 where b.隶属机构I='1' and (药房序号I='14' or '14'='0')
124 and b.操作时间 between to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
125 group by 药房序号I,药品序号I,批次序号i
126 )union all
127 select '入库' 业务大类,
128 '其他入库' 业务分类,
129 sum(西药成本) 西药成本,
130 sum(西药零售) 西药零售,
131 sum(中成药成本) 中成药成本,
132 sum(中成药零售) 中成药零售,
133 sum(中药成本合计) 中药成本,
134 sum(中药零售合计) 中药零售,
135 sum(中药成本合计+西药成本合计) 成本合计,
136 sum(中药零售合计+西药零售合计) 零售合计
137 from (
138 select
139 sum(case when 业务来源 in ('药房入库','药房入库冲销') and 药品类型i=1 then b.成本单价*b.变化数量 else 0 end ) As 西药成本,
140 sum( case when 业务来源 in ('药房入库','药房入库冲销') and 药品类型i=1 then b.零售单价*b.变化数量 else 0 end ) 西药零售,
141 sum(case when (药品类型i=2 or 药品类型i=4) and 业务来源 in ('药房入库','药房入库冲销') then b.成本单价*b.变化数量 else 0 end ) As 中成药成本,
142 sum( case when (药品类型i=2 or 药品类型i=4) and 业务来源 in ('药房入库','药房入库冲销') then b.零售单价*b.变化数量 else 0 end ) 中成药零售,
143 sum(case when 业务来源 in ('药房入库','药房入库冲销') then b.成本单价*b.变化数量 else 0 end ) As 西药成本合计,
144 sum( case when 业务来源 in ('药房入库','药房入库冲销') then b.零售单价*b.变化数量 else 0 end ) As 西药零售合计,
145 0 中药成本合计,
146 0 中药零售合计
147 from dug_d西药房库存变化明细 b
148 inner join doc_t药品目录_价格 bb on bb.系统序号 = b.药品序号i
149 inner join doc_t药品目录 cc on cc.系统序号 = bb.药品目录序号i
150 inner join doc_t药典目录 dd on dd.系统序号 = cc.药典序号i
151 where b.隶属机构I='1' and 药品类型i !=5 and (药房序号I='14' or '14'='0')
152 and b.操作时间 between to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
153 group by 药房序号I,药品序号I,批次序号i
154 union all
155 select
156 0 西药成本
157 ,0 西药零售,
158 0 中成药成本
159 ,0 中成药零售
160 ,0 西药成本合计
161 ,0 西药零售合计,
162 sum(case when 业务来源 in ('药房入库','药房入库冲销') then b.成本单价*b.变化数量 else 0 end ) 中药成本合计,
163 sum( case when 业务来源 in ('药房入库','药房入库冲销') then b.零售单价*b.变化数量 else 0 end ) 中药零售合计
164 from dug_d中药房库存变化明细 b
165 where b.隶属机构I='1' and (药房序号I='14' or '14'='0')
166 and b.操作时间 between to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
167 group by 药房序号I,药品序号I,批次序号i
168 ) union all
169 select
170 '入库' 业务大类,
171 '药品调价' 业务分类,
172 sum(西药成本) 西药成本,
173 sum(西药零售) 西药零售,
174 sum(中成药成本) 中成药成本,
175 sum(中成药零售) 中成药零售,
176 sum(中药成本合计) 中药成本,
177 sum(中药零售合计) 中药零售,
178 sum(中药成本合计+西药成本合计) 成本合计,
179 sum(中药零售合计+西药零售合计) 零售合计
180 from ( select
181 sum(case when 业务来源 in ('调价前','调价后') and 药品类型i=1 then case when 业务来源='调价前' then -成本单价 else 成本单价 end *调价数量 else 0 end) As 西药成本,
182 sum( case when 业务来源 in ('调价前','调价后') and 药品类型i=1 then case when 业务来源='调价前' then -零售单价 else 零售单价 end *调价数量 else 0 end) 西药零售,
183 sum(case when (药品类型i=2 or 药品类型i=4) and 业务来源 in ('调价前','调价后') then case when 业务来源='调价前' then -成本单价 else 成本单价 end *调价数量 else 0 end) As 中成药成本,
184 sum( case when (药品类型i=2 or 药品类型i=4) and 业务来源 in ('调价前','调价后') then case when 业务来源='调价前' then -零售单价 else 零售单价 end *调价数量 else 0 end) 中成药零售,
185 sum(case when 业务来源 in ('调价前','调价后') then case when 业务来源='调价前' then -成本单价 else 成本单价 end *调价数量 else 0 end ) As 西药成本合计,
186 sum( case when 业务来源 in ('调价前','调价后') then case when 业务来源='调价前' then -零售单价 else 零售单价 end *调价数量 else 0 end ) As 西药零售合计,
187 0 中药成本合计,
188 0 中药零售合计
189 from dug_d西药房库存变化明细 b
190 inner join doc_t药品目录_价格 bb on bb.系统序号 = b.药品序号i
191 inner join doc_t药品目录 cc on cc.系统序号 = bb.药品目录序号i
192 inner join doc_t药典目录 dd on dd.系统序号 = cc.药典序号i
193 where b.隶属机构I='1' and 药品类型i !=5 and (药房序号I='14' or '14'='0')
194 and b.操作时间 between to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
195 group by 药房序号I,药品序号I,批次序号i
196 union all
197 select
198 0 西药成本
199 ,0 西药零售,
200 0 中成药成本
201 ,0 中成药零售
202 ,0 西药成本合计
203 ,0 西药零售合计,
204 sum( case when 业务来源 in ('调价前','调价后') then case when 业务来源='调价前' then -成本单价 else 成本单价 end *调价数量 else 0 end ) 中药成本合计,
205 sum( case when 业务来源 in ('调价前','调价后') then case when 业务来源='调价前' then -零售单价 else 零售单价 end *调价数量 else 0 end ) 中药零售合计
206 from dug_d中药房库存变化明细 b
207 where b.隶属机构I='1' and (药房序号I='14' or '14'='0')
208 and b.操作时间 between to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
209 group by 药房序号I,药品序号I,批次序号i
210 )union all
211 select
212 '入库' 业务大类,
213 '药房盘盈' 业务分类,
214 sum(西药成本) 西药成本,
215 sum(西药零售) 西药零售,
216 sum(中成药成本) 中成药成本,
217 sum(中成药零售) 中成药零售,
218 sum(中药成本合计) 中药成本,
219 sum(中药零售合计) 中药零售,
220 sum(中药成本合计+西药成本合计) 成本合计,
221 sum(中药零售合计+西药零售合计) 零售合计
222 from (
223 select
224 sum(case when 业务来源='药房盘点'and 药品类型i=1 and 变化数量>0 then b.成本单价*b.变化数量 else 0 end ) +sum(case when 业务来源='药房盘点反结转'and 药品类型i=1 and 变化数量<0 then b.成本单价*b.变化数量 else 0 end ) As 西药成本,
225 sum( case when 业务来源='药房盘点'and 药品类型i=1 and 变化数量>0 then b.零售单价*b.变化数量 else 0 end ) +sum(case when 业务来源='药房盘点反结转'and 药品类型i=1 and 变化数量<0 then b.零售单价*b.变化数量 else 0 end ) 西药零售,
226 sum(case when (药品类型i=2 or 药品类型i=4) and 业务来源='药房盘点' and 变化数量>0 then b.成本单价*b.变化数量 else 0 end ) +
227 sum(case when (药品类型i=2 or 药品类型i=4) and 业务来源='药房盘点反结转' and 变化数量<0 then b.成本单价*b.变化数量 else 0 end ) As 中成药成本,
228 sum( case when (药品类型i=2 or 药品类型i=4) and 业务来源='药房盘点' and 变化数量>0 then b.零售单价*b.变化数量 else 0 end )
229 + sum( case when (药品类型i=2 or 药品类型i=4) and 业务来源='药房盘点反结转' and 变化数量<0 then b.零售单价*b.变化数量 else 0 end )
230 中成药零售,
231 sum(case when 业务来源='药房盘点' and 变化数量>0 then b.成本单价*b.变化数量 else 0 end )
232 + sum(case when 业务来源='药房盘点反结转' and 变化数量<0 then b.成本单价*b.变化数量 else 0 end )
233 As 西药成本合计,
234 sum( case when 业务来源='药房盘点' and 变化数量>0 then b.零售单价*b.变化数量 else 0 end )
235 + sum( case when 业务来源='药房盘点反结转' and 变化数量<0 then b.零售单价*b.变化数量 else 0 end )
236 As 西药零售合计,
237 0 中药成本合计,
238 0 中药零售合计
239 from dug_d西药房库存变化明细 b
240 inner join doc_t药品目录_价格 bb on bb.系统序号 = b.药品序号i
241 inner join doc_t药品目录 cc on cc.系统序号 = bb.药品目录序号i
242 inner join doc_t药典目录 dd on dd.系统序号 = cc.药典序号i
243 where b.隶属机构I='1' and 药品类型i !=5 and (药房序号I='14' or '14'='0')
244 and b.操作时间 between to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
245 group by 药房序号I,药品序号I,批次序号i
246 union all
247 select
248 0 As 西药成本,
249 0 As 西药零售,
250 0 As 中成药成本,
251 0 As 中成药零售,
252 0 As 西药成本合计,
253 0 As 西药零售合计,
254 sum(case when 业务来源='药房盘点' and 变化数量>0 then b.成本单价*b.变化数量 else 0 end )
255 + sum(case when 业务来源='药房盘点反结转' and 变化数量<0 then b.成本单价*b.变化数量 else 0 end )
256 As 中药成本合计,
257 sum( case when 业务来源='药房盘点' and 变化数量>0 then b.零售单价*b.变化数量 else 0 end )
258 +sum( case when 业务来源='药房盘点反结转' and 变化数量<0 then b.零售单价*b.变化数量 else 0 end )
259 As 中药零售合计
260 from dug_d中药房库存变化明细 b
261 where b.隶属机构I='1' and (药房序号I='14' or '14'='0')
262 and b.操作时间 between to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
263 group by 药房序号I,药品序号I,批次序号i )
264 union all
265 select '出库' 业务大类,
266 '其他出库' 业务分类,
267 sum(西药成本) 西药成本,
268 sum(西药零售) 西药零售,
269 sum(中成药成本) 中成药成本,
270 sum(中成药零售) 中成药零售,
271 sum(中药成本合计) 中药成本,
272 sum(中药零售合计) 中药零售,
273 sum(中药成本合计+西药成本合计) 成本合计,
274 sum(中药零售合计+西药零售合计) 零售合计
275 from (
276 select
277 sum(case when 业务来源 in ('药房出库','药房出库冲销') and 药品类型i=1 then b.成本单价*b.变化数量 else 0 end ) As 西药成本,
278 sum( case when 业务来源 in ('药房出库','药房出库冲销') and 药品类型i=1 then b.零售单价*b.变化数量 else 0 end ) 西药零售,
279 sum(case when (药品类型i=2 or 药品类型i=4) and 业务来源 in ('药房出库','药房出库冲销') then b.成本单价*b.变化数量 else 0 end ) As 中成药成本,
280 sum( case when (药品类型i=2 or 药品类型i=4) and 业务来源 in ('药房出库','药房出库冲销') then b.零售单价*b.变化数量 else 0 end ) 中成药零售,
281 sum(case when 业务来源 in ('药房出库','药房出库冲销') then b.成本单价*b.变化数量 else 0 end ) As 西药成本合计,
282 sum( case when 业务来源 in ('药房出库','药房出库冲销') then b.零售单价*b.变化数量 else 0 end ) As 西药零售合计,
283 0 中药成本合计,
284 0 中药零售合计
285 from dug_d西药房库存变化明细 b
286 inner join doc_t药品目录_价格 bb on bb.系统序号 = b.药品序号i
287 inner join doc_t药品目录 cc on cc.系统序号 = bb.药品目录序号i
288 inner join doc_t药典目录 dd on dd.系统序号 = cc.药典序号i
289 where b.隶属机构I='1' and 药品类型i !=5 and (药房序号I='14' or '14'='0')
290 and b.操作时间 between to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
291 group by 药房序号I,药品序号I,批次序号i
292 union all
293 select
294 0 西药成本
295 ,0 西药零售,
296 0 中成药成本
297 ,0 中成药零售
298 ,0 西药成本合计
299 ,0 西药零售合计,
300 sum(case when 业务来源 in ('药房出库','药房出库冲销') then b.成本单价*b.变化数量 else 0 end ) 中药成本合计,
301 sum( case when 业务来源 in ('药房出库','药房出库冲销') then b.零售单价*b.变化数量 else 0 end ) 中药零售合计
302 from dug_d中药房库存变化明细 b
303 where b.隶属机构I='1' and (药房序号I='14' or '14'='0')
304 and b.操作时间 between to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
305 group by 药房序号I,药品序号I,批次序号i
306 )
307 union all
308 select
309 '出库' 业务大类,
310 '门诊药品销售' 业务分类,
311 sum(西药成本金额) 西药成本,
312 sum(西药零售金额) 西药零售,
313 sum(中成药成本) 中成药成本,
314 sum(中成药零售) 中成药零售,
315 sum(中药成本合计) 中药成本合计,
316 sum(中药零售合计) 中药零售合计,
317 sum(中药成本合计+西药成本合计) 成本合计,
318 sum(中药零售合计+西药零售合计) 零售合计
319 from (
320 select
321 sum(case when (b.业务来源='门诊') and 药品类型i=1 then b.成本单价*b.变化数量 else 0 end ) As 西药成本金额,
322 sum( case when ( b.业务来源='门诊') and 药品类型i=1 then b.零售单价*b.变化数量 else 0 end ) 西药零售金额,
323 sum(case when (药品类型i=2 or 药品类型i=4) and ( b.业务来源='门诊') then b.成本单价*b.变化数量 else 0 end ) As 中成药成本,
324 sum( case when (药品类型i=2 or 药品类型i=4) and (b.业务来源='门诊') then b.零售单价*b.变化数量 else 0 end ) 中成药零售,
325 sum(case when (b.业务来源='门诊') then b.成本单价*b.变化数量 else 0 end ) As 西药成本合计,
326 sum( case when (b.业务来源='门诊') then b.零售单价*b.变化数量 else 0 end ) As 西药零售合计,
327 0 中药成本合计,
328 0 中药零售合计
329 from dug_d西药房库存变化明细 b
330 inner join doc_t药品目录_价格 bb on bb.系统序号 = b.药品序号i
331 inner join doc_t药品目录 cc on cc.系统序号 = bb.药品目录序号i
332 inner join doc_t药典目录 dd on dd.系统序号 = cc.药典序号i
333 where b.隶属机构I='1' and 药品类型i !=5 and (药房序号I='14' or '14'='0')
334 and b.操作时间 between to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
335 group by 药房序号I,药品序号I,批次序号i
336 union all
337 select
338 0 As 西药成本,
339 0 As 西药零售,
340 0 As 中成药成本,
341 0 As 中成药零售,
342 0 As 西药成本合计,
343 0 As 西药零售合计,
344 sum(case when (b.业务来源='门诊') then b.成本单价*b.变化数量 else 0 end ) 中药成本合计,
345 sum( case when (b.业务来源='门诊') then b.零售单价*b.变化数量 else 0 end ) 中药零售合计
346 from dug_d中药房库存变化明细 b
347 where b.隶属机构I='1' and (药房序号I='14' or '14'='0')
348 and b.操作时间 between to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
349 group by 药房序号I,药品序号I,批次序号i
350 )
351 union all
352 select
353 '出库' 业务大类,
354 '住院药品销售' 业务分类,
355 sum(西药成本金额) 西药成本,
356 sum(西药零售金额) 西药零售,
357 sum(中成药成本) 中成药成本,
358 sum(中成药零售) 中成药零售,
359 sum(中药成本合计) 中药成本合计,
360 sum(中药零售合计) 中药零售合计,
361 sum(中药成本合计+西药成本合计) 成本合计,
362 sum(中药零售合计+西药零售合计) 零售合计
363 from (
364 select
365 sum(case when (b.业务来源='住院') and 药品类型i=1 then b.成本单价*b.变化数量 else 0 end ) As 西药成本金额,
366 sum( case when (b.业务来源='住院') and 药品类型i=1 then b.零售单价*b.变化数量 else 0 end ) 西药零售金额,
367 sum(case when (药品类型i=2 or 药品类型i=4) and (b.业务来源='住院') then b.成本单价*b.变化数量 else 0 end ) As 中成药成本,
368 sum( case when (药品类型i=2 or 药品类型i=4) and (b.业务来源='住院') then b.零售单价*b.变化数量 else 0 end ) 中成药零售,
369 sum(case when (b.业务来源='住院' ) then b.成本单价*b.变化数量 else 0 end ) As 西药成本合计,
370 sum( case when (b.业务来源='住院') then b.零售单价*b.变化数量 else 0 end ) As 西药零售合计,
371 0 中药成本合计,
372 0 中药零售合计
373 from dug_d西药房库存变化明细 b
374 inner join doc_t药品目录_价格 bb on bb.系统序号 = b.药品序号i
375 inner join doc_t药品目录 cc on cc.系统序号 = bb.药品目录序号i
376 inner join doc_t药典目录 dd on dd.系统序号 = cc.药典序号i
377 where b.隶属机构I='1' and 药品类型i !=5 and (药房序号I='14' or '14'='0')
378 and b.操作时间 between to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
379 group by 药房序号I,药品序号I,批次序号i
380 union all
381 select
382 0 As 西药成本,
383 0 As 西药零售,
384 0 As 中成药成本,
385 0 As 中成药零售,
386 0 As 西药成本合计,
387 0 As 西药零售合计,
388 sum(case when (b.业务来源='住院') then b.成本单价*b.变化数量 else 0 end ) 中药成本合计,
389 sum( case when (b.业务来源='住院') then b.零售单价*b.变化数量 else 0 end ) 中药零售合计
390 from dug_d中药房库存变化明细 b
391 where b.隶属机构I='1' and (药房序号I='14' or '14'='0')
392 and b.操作时间 between to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
393 group by 药房序号I,药品序号I,批次序号i
394 )union all
395 select
396 '出库' 业务大类,
397 '药房退货' 业务分类,
398 sum(西药成本) 西药成本,
399 sum(西药零售) 西药零售,
400 sum(中成药成本) 中成药成本,
401 sum(中成药零售) 中成药零售,
402 sum(中药成本合计) 中药成本合计,
403 sum(中药零售合计) 中药零售合计,
404 sum(中药成本合计+西药成本合计) 成本合计,
405 sum(中药零售合计+西药零售合计) 零售合计
406 from (select
407 sum(case when 业务来源 in ('药房退货','药房退货冲销') and 药品类型i=1 then b.成本单价*b.变化数量 else 0 end ) As 西药成本,
408 sum( case when 业务来源 in ('药房退货','药房退货冲销')and 药品类型i=1 then b.零售单价*b.变化数量 else 0 end ) 西药零售,
409 sum(case when (药品类型i=2 or 药品类型i=4) and 业务来源 in ('药房退货','药房退货冲销') then b.成本单价*b.变化数量 else 0 end ) As 中成药成本,
410 sum( case when (药品类型i=2 or 药品类型i=4) and 业务来源 in ('药房退货','药房退货冲销') then b.零售单价*b.变化数量 else 0 end ) 中成药零售,
411 sum(case when 业务来源 in ('药房退货','药房退货冲销') then b.成本单价*b.变化数量 else 0 end ) As 西药成本合计,
412 sum( case when 业务来源 in ('药房退货','药房退货冲销') then b.零售单价*b.变化数量 else 0 end ) As 西药零售合计,
413 0 中药成本合计,
414 0 中药零售合计
415 from dug_d西药房库存变化明细 b
416 inner join doc_t药品目录_价格 bb on bb.系统序号 = b.药品序号i
417 inner join doc_t药品目录 cc on cc.系统序号 = bb.药品目录序号i
418 inner join doc_t药典目录 dd on dd.系统序号 = cc.药典序号i
419 where b.隶属机构I='1' and 药品类型i !=5 and (药房序号I='14' or '14'='0')
420 and b.操作时间 between to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
421 group by 药房序号I,药品序号I,批次序号i
422 union all
423 select
424 0 As 西药成本,
425 0 As 西药零售,
426 0 As 中成药成本,
427 0 As 中成药零售,
428 0 As 西药成本合计,
429 0 As 西药零售合计,
430 sum(case when 业务来源 in ('药房退货','药房退货冲销') then b.成本单价*b.变化数量 else 0 end ) As 中药成本合计,
431 sum( case when 业务来源 in ('药房退货','药房退货冲销') then b.零售单价*b.变化数量 else 0 end ) As 中药零售合计
432 from dug_d中药房库存变化明细 b
433 where b.隶属机构I='1' and (药房序号I='14' or '14'='0')
434 and b.操作时间 between to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
435 group by 药房序号I,药品序号I,批次序号i
436 )
437 union all
438 select
439 '出库' 业务大类,
440 '科室领用' 业务分类,
441 sum(西药成本) 西药成本,
442 sum(西药零售) 西药零售,
443 sum(中成药成本) 中成药成本,
444 sum(中成药零售) 中成药零售,
445 sum(中药成本合计) 中药成本合计,
446 sum(中药零售合计) 中药零售合计,
447 sum(中药成本合计+西药成本合计) 成本合计,
448 sum(中药零售合计+西药零售合计) 零售合计
449 from (
450 select
451 sum(case when 业务来源 in ('科室领用','科室领用冲销') and 药品类型i=1 then b.成本单价*b.变化数量 else 0 end ) As 西药成本,
452 sum( case when 业务来源 in ('科室领用','科室领用冲销') and 药品类型i=1 then b.零售单价*b.变化数量 else 0 end ) 西药零售,
453 sum(case when (药品类型i=2 or 药品类型i=4) and 业务来源 in ('科室领用','科室领用冲销') then b.成本单价*b.变化数量 else 0 end ) As 中成药成本,
454 sum( case when (药品类型i=2 or 药品类型i=4) and 业务来源 in ('科室领用','科室领用冲销') then b.零售单价*b.变化数量 else 0 end ) 中成药零售,
455 sum(case when 业务来源 in ('科室领用','科室领用冲销') then b.成本单价*b.变化数量 else 0 end ) As 西药成本合计,
456 sum( case when 业务来源 in ('科室领用','科室领用冲销') then b.零售单价*b.变化数量 else 0 end ) As 西药零售合计,
457 0 中药成本合计,
458 0 中药零售合计
459 from dug_d西药房库存变化明细 b
460 inner join doc_t药品目录_价格 bb on bb.系统序号 = b.药品序号i
461 inner join doc_t药品目录 cc on cc.系统序号 = bb.药品目录序号i
462 inner join doc_t药典目录 dd on dd.系统序号 = cc.药典序号i
463 where b.隶属机构I='1' and 药品类型i !=5 and (药房序号I='14' or '14'='0')
464 and b.操作时间 between to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
465 group by 药房序号I,药品序号I,批次序号i
466 union all
467 select
468 0 As 西药成本,
469 0 As 西药零售,
470 0 As 中成药成本,
471 0 As 中成药零售,
472 0 As 西药成本合计,
473 0 As 西药零售合计,
474 sum(case when 业务来源 in ('科室领用','科室领用冲销') then b.成本单价*b.变化数量 else 0 end ) As 中药成本合计,
475 sum( case when 业务来源 in ('科室领用','科室领用冲销') then b.零售单价*b.变化数量 else 0 end ) As 中药零售合计
476 from dug_d中药房库存变化明细 b
477 where b.隶属机构I='1' and (药房序号I='14' or '14'='0')
478 and b.操作时间 between to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
479 group by 药房序号I,药品序号I,批次序号i
480 )
481 union all
482 select
483 '出库' 业务大类,
484 '药房盘亏' 业务分类,
485 sum(西药成本) 西药成本,
486 sum(西药零售) 西药零售,
487 sum(中成药成本) 中成药成本,
488 sum(中成药零售) 中成药零售,
489 sum(中药成本合计) 中药成本合计,
490 sum(中药零售合计) 中药零售合计,
491 sum(中药成本合计+西药成本合计) 成本合计,
492 sum(中药零售合计+西药零售合计) 零售合计
493 from (
494 select
495 sum(case when 业务来源 in ('药房盘点','药房盘点反结转') and 药品类型i=1 and 变化数量<0 then b.成本单价*b.变化数量 else 0 end )
496 + sum(case when 业务来源 in ('药房盘点反结转') and 药品类型i=1 and 变化数量>0 then b.成本单价*b.变化数量 else 0 end )
497 As 西药成本,
498 sum( case when 业务来源 in ('药房盘点') and 药品类型i=1 and 变化数量<0 then b.零售单价*b.变化数量 else 0 end ) +
499 sum( case when 业务来源 in ('药房盘点反结转') and 药品类型i=1 and 变化数量>0 then b.零售单价*b.变化数量 else 0 end )
500 西药零售,
501 sum(case when (药品类型i=2 or 药品类型i=4) and 业务来源 in ('药房盘点') and 变化数量<0 then b.成本单价*b.变化数量 else 0 end )
502 +sum(case when (药品类型i=2 or 药品类型i=4) and 业务来源 in ('药房盘点反结转') and 变化数量>0 then b.成本单价*b.变化数量 else 0 end )
503 As 中成药成本,
504 sum( case when (药品类型i=2 or 药品类型i=4) and 业务来源 in ('药房盘点') and 变化数量<0 then b.零售单价*b.变化数量 else 0 end )
505 +sum( case when (药品类型i=2 or 药品类型i=4) and 业务来源 in ('药房盘点反结转') and 变化数量>0 then b.零售单价*b.变化数量 else 0 end )
506 中成药零售,
507 sum(case when 业务来源 in ('药房盘点') and 变化数量<0 then b.成本单价*b.变化数量 else 0 end )
508 + sum(case when 业务来源 in ('药房盘点反结转') and 变化数量>0 then b.成本单价*b.变化数量 else 0 end )
509 As 西药成本合计,
510 sum( case when 业务来源 in ('药房盘点') and 变化数量<0 then b.零售单价*b.变化数量 else 0 end )
511 + sum( case when 业务来源 in ('药房盘点反结转') and 变化数量>0 then b.零售单价*b.变化数量 else 0 end )
512 As 西药零售合计,
513 0 中药成本合计,
514 0 中药零售合计
515 from dug_d西药房库存变化明细 b
516 inner join doc_t药品目录_价格 bb on bb.系统序号 = b.药品序号i
517 inner join doc_t药品目录 cc on cc.系统序号 = bb.药品目录序号i
518 inner join doc_t药典目录 dd on dd.系统序号 = cc.药典序号i
519 where b.隶属机构I='1' and 药品类型i !=5 and (药房序号I='14' or '14'='0')
520 and b.操作时间 between to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
521 group by 药房序号I,药品序号I,批次序号i
522 union all
523 select
524 0 As 西药成本,
525 0 As 西药零售,
526 0 As 中成药成本,
527 0 As 中成药零售,
528 0 As 西药成本合计,
529 0 As 西药零售合计,
530 sum(case when 业务来源 in ('药房盘点') and 变化数量<0 then b.成本单价*b.变化数量 else 0 end )
531 + sum(case when 业务来源 in ('药房盘点反结转') and 变化数量>0 then b.成本单价*b.变化数量 else 0 end )
532 As 中药成本合计,
533 sum( case when 业务来源 in ('药房盘点') and 变化数量<0 then b.零售单价*b.变化数量 else 0 end )
534 + sum( case when 业务来源 in ('药房盘点反结转') and 变化数量>0 then b.零售单价*b.变化数量 else 0 end )
535 As 中药零售合计
536 from dug_d中药房库存变化明细 b
537 where b.隶属机构I='1' and (药房序号I='14' or '14'='0')
538 and b.操作时间 between to_date('2019-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
539 group by 药房序号I,药品序号I,批次序号i
540 )
541 union all
542 select '期末' 业务大类,
543 '-------' 业务分类,
544 sum(西药成本) 西药成本,
545 sum(西药零售) 西药零售,
546 sum(中成药成本) 中成药成本,
547 sum(中成药零售) 中成药零售,
548 sum(中药成本合计) 中药成本,
549 sum(中药零售合计) 中药零售,
550 sum(中药成本合计+西药成本合计) 成本合计,
551 sum(中药零售合计+西药零售合计) 零售合计
552 from ( select
553 sum(case when 药品类型i=1 then A.变化后库存数量*A.成本单价 else 0 end ) 西药成本
554 ,SUM( case when 药品类型i=1 then A.变化后库存数量*A.零售单价 else 0 end ) 西药零售,
555 sum(case when (药品类型i=2 or 药品类型i=4) then A.变化后库存数量*A.成本单价 else 0 end ) 中成药成本
556 ,SUM( case when (药品类型i=2 or 药品类型i=4) then A.变化后库存数量*A.零售单价 else 0 end ) 中成药零售,
557 sum(A.变化后库存数量*A.成本单价) As 西药成本合计,
558 sum(A.变化后库存数量*A.零售单价) As 西药零售合计,
559 0 中药成本合计,
560 0 中药零售合计
561 from dug_d西药房库存变化明细 A
562 inner join (select 批次序号i,药房序号I,药品序号I,max(系统序号) As 系统序号 from dug_d西药房库存变化明细 where 操作时间<= to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
563 and 隶属机构I='1'
564 group by 药房序号I,药品序号I,批次序号i) B on A.系统序号=B.系统序号
565 inner join doc_t药品目录_价格 bb on bb.系统序号 = b.药品序号i
566 inner join doc_t药品目录 cc on cc.系统序号 = bb.药品目录序号i
567 inner join doc_t药典目录 dd on dd.系统序号 = cc.药典序号i
568 where 药品类型i !=5 and (a.药房序号I='14' or '14'='0')
569 union all
570 select
571 0 西药成本
572 ,0 西药零售,
573 0 中成药成本
574 ,0 中成药零售
575 ,0 西药成本合计
576 ,0 西药零售合计,
577 sum(A.变化后库存数量*A.成本单价) As 中药成本合计,
578 sum(A.变化后库存数量*A.零售单价) As 中药零售合计
579 from dug_d中药房库存变化明细 A
580 inner join (select 批次序号i,药房序号I,药品序号I,max(系统序号) As 系统序号 from dug_d中药房库存变化明细 where 操作时间<= to_date('2019-03-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
581 and 隶属机构I='1' and (药房序号I='14' or '14'='0')
582 group by 药房序号I,药品序号I,批次序号i) B on A.系统序号=B.系统序号
583 )) T ;