以上SQL已经被优化成更简洁的形式,并且语法没有问题。

优化后的SQL语句如下:

select 
       
c.hos_name 院区,
d.fee_stat_name 费用类别,
sum(t.tot_cost) 费用金额

from fin_ipb_feeinfo t,fin_ipr_inmaininfo b,com_hospitalinfo c,fin_com_feecodestat d
where t.balance_state='1'
AND t.inpatient_no=b.inpatient_no
and t.fee_date< to_date('2023-4-18,00:00:00', 'yyyy-mm-dd,hh24:mi:ss') 
and t.balance_date >=to_date('2023-4-18,00:00:00', 'yyyy-mm-dd,hh24:mi:ss') 
and t.balance_date <=to_date('2023-4-18,10:00:00', 'yyyy-mm-dd,hh24:mi:ss') 
and c.hos_code=b.hospital_didt
and t.fee_code=d.fee_code
GROUP BY c.hos_name,d.fee_stat_name

优化后的SQL语句使用了join连接,将多个decode语句合并成一个费用类别表,并使用sum函数进行统计,使得查询更加简洁高效。

注意:

  • 优化后的SQL语句中使用了fin_com_feecodestat表,该表需要包含所有费用代码及其对应的费用类别名称。
  • SQL语句中的日期格式需要根据实际情况进行调整。

总结:

优化后的SQL语句更简洁高效,也更容易理解和维护。建议在实际应用中使用这种优化方式。


原文地址: https://www.cveoy.top/t/topic/nwC0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录