请大家先看一下我写的这些查询语句: select unit.u4 as 单位,base.f4 as 门牌号,base.f6 as 女方姓名,base.f15 as 男方姓名,max(birth.b3) as 最小孩子出生时间, case dis_preg.d1 when 1 then '男扎' when 2 then '女扎' when 3 then '上环' when 4 then '皮埋' end as 避孕措施,dis_preg.d2 as 起始时间,dis_preg.d12 as 施术单位 from unit,base,dis_preg,birth where unit.code=left(base.f1,15) and base.f1=dis_preg.f1 and base.f1=birth.f1 and dis_preg.d2 between '2006-10-01' and '2007-03-31' group by unit.u4,dis_preg.d1,dis_preg.d2,dis_preg.d12,base.f4,base.f6,base.f15,birth.b3 我是从事人口计生工作的,因数据库较大,不方便上传,我简单地说一下,我们上级单位要求我们报一个节育手术名单,需要有如下内容: 村名单位 门牌号 女方姓名 男方姓名 现有男孩个数 现有女孩个数 最小孩子出生时间 避孕措施 避孕起始时间 施术单位 unit是单位名称表 base是基础信息表 dis_preg是节育情况表 birth是出生表。 现在我存在的问题是:一:那个最小出生孩子时间我不知道怎么弄,如果小孩有两个或两个以后,则手术名单会出现两次,所以我就想到用函数max(birth.b3),原意想出生时间的最大值即是最小孩子出生时间,没想到,多个孩子时,一次手术仍然生成了多次,请问下高手们这个问题怎么解决。 第二个问题:生育的孩子个数我不知道怎么求
|