计算每一天有几个人(200)

  • 主题发起人 主题发起人 tane
  • 开始时间 开始时间
T

tane

Unregistered / Unconfirmed
GUEST, unregistred user!
例如一个宿舍一月份(31天)以下是入住与离开的时间人员 入住日期 搬出日期a 2010-1-1 2010-1-10b 2010-1-3 2010-1-18c 2010-1-1 2010-1-31则我想计算出每一天有几个人在这个房间1号至2号 3号至10号 11号至18号 19号至31号a a * ** b b *c c c c--------------------------------------------2人 3人 2人 1人如上图,可以有一个函数能够轻松的得知几号某个房间有几个人住。顶者有分
 
感觉放到表里用查询语句处理会比较简单。
 
如果象你上面固定死的就那几天还好办一点。或者有选择性的也好办一点。就象我们公司的人事资料,有进厂日期和离厂日期,我们会计算某一天有多少人在职。
 
顶,这个如果用存储过程比较简单先获取最大日期和最小日期,再在统计每天的人数,这样一个循环下来可以获取每一天的人数如 for I := 0 to 365 do begin Str := formatdatetime('yyyy-mm-dd', 初始日期+I); sql := 'select count(*) from table where 开始日期字符串< ='+str +'and 结束日期字符串>=' + str...; ......... //这样获取一天的,循环获取一年的 end;
 
buf:array of Trecord;Count:=0;for i:=0 to length(buf)-1 do beginif (查询日期>=入住日期)and((查询日期<=搬出日期)) then inc(Count);end;showmessage('查询日期的人数为:'+inttostr(Count));///不通过数据库的方法
 
支持 zhengrong117 的思路
 
每天的人数select count(*)where @date between in_date and out_date
 
楼上正解
 
后退
顶部