日期:2014-05-17  浏览次数:20765 次

c# 新手求助
   碰到一个医院数据库编程的项目,数据库的主要数据表是个月份表,如201301,201302…… 每个病人的数据可能在一个月份表,也有可能跨几个表,如果要统计一个科室的在院病人报表,如何通过每个病人的入院日期和当前日期来计算每个病人的数据在那些月份表?然后通过这些月份表来计算病人费用。

------解决方案--------------------
计算入院到当前日期所经历的月份,然后动态拼出sql语句,跨月用union联合查询
如:2013年2月8日入院,则需查201302,201303,201304这三张表
select * from 201302
where id=@病人id
union
select * from 201303
where id=@病人id
select * from 201304
where id=@病人id
------解决方案--------------------
这个应该先把数据表设计好那么取数据计算是很方便的
如果已经是月份表也很容易:按条件搜索12个月12个表?然后判断12个表是否有行数据,合并输出显示和统计,条件是12个表必须字段名称一样才能合并.
这个方法就是执行批量操作,之前用联合查询的用该方法后就不用了