select decode('2',
1,
nvl(a.curr_ks, '未知科室') || '-' || nvl(a.ys_code, '未知醫生'),
2,
nvl(a.curr_ks, '未知科室'),
3,
nvl(a.zx_ks, '未知科室'),
4,
nvl(a.curr_ks, '未知科室') || '-' || nvl(a.zzys, '未知醫生')) ksdm,
a.fygl sfxm,
sum(a.je * b.jylx) fyhj,
sum(round(a.je * nvl(a.self_percent, 1), 2) * b.jylx) zfje,
sum((a.je - a.rlje) * b.jylx) sjfyhj,
sum(round((a.je - a.rlje) * nvl(a.self_percent, 1), 2) * b.jylx) sjzfje
from zy_total_fee b, zy_detail_charge a
where a.patient_no = b.patient_no
and a.jlxh between b.fy_jlxh1 and b.fy_jlxh2
and (((b.jz_date between
(to_date('2015/06/01 00:00:00', 'yyyy/MM/dd hh24:mi:ss')) and
(to_date('2015/06/30 23:59:59', 'yyyy/MM/dd hh24:mi:ss'))) and
'1' = 1) or
((b.rb_date between
(to_date('2015/06/01 00:00:00', 'yyyy/MM/dd hh24:mi:ss')) and
(to_date('2015/06/30 23:59:59', 'yyyy/MM/dd hh24:mi:ss'))) and
'1' = 2 and b.rb_date is not null))
and (instr('*', '^^' || b.brxz || '^^') > 0 or '*' = '*')
and (('-1' = -1) or ('-1' <> -1 and b.fybh = '-1'))
group by decode('2',
1,
nvl(a.curr_ks, '未知科室') || '-' || nvl(a.ys_code, '未知醫生'),
2,
nvl(a.curr_ks, '未知科室'),
3,
nvl(a.zx_ks, '未知科室'),
4,
nvl(a.curr_ks, '未知科室') || '-' || nvl(a.zzys, '未知醫生')),
a.fygl
uj5u.com熱心網友回復:
除錯一下,看在vs下最終執行的sql是什么,提示是不會有問題的uj5u.com熱心網友回復:
在 vs 里斷點除錯一下,你這個陳述句應該是在 vs 里拼接出來的,uj5u.com熱心網友回復:
應該是VS中拼SQL陳述句不對。uj5u.com熱心網友回復:
打斷點除錯下,將運行后的sql拿到plsql中執行下,看報什么錯,找到錯 再把VS里不對的地方改改,估計是拼接的時候沒拼好,仔細看看uj5u.com熱心網友回復:
sql字串前加上@,斷點除錯一下uj5u.com熱心網友回復:
可以在所有sql陳述句之外,加上一個 select * from ()轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/49719.html
標籤:基礎和管理
下一篇:遞回查詢寫法求助
