SQL语句—查询重复数据并统计

表一:nb_yyzd【医院字典】表中字段yymc 、jgmc
表二:nb_bxjl【报销记录】字段jgmc
表三:nb_bxjl2【报销记录2】字段grbh(个人编号)
select yymc as '医疗机构',jgmc as '机构代码',count(grbh) as '人次数' from nb_yyzd,nb_bxjl,nb_bxjl2
where yybh=jgmc
and bxlx=1
and bxfs=2
and glzf is null
and bxrq>='2013-01-01'
and bxrq<'2013-08-01'
and nb_bxjl2.bxid=nb_bxjl.bxid
and grbh in (select grbh from nb_bxjl group by grbh,CONVERT( CHAR(20),bxrq, 111 ) having count(grbh)>1)
group by yymc,jgmc
查询语句如上,在时间段内,查询统计相同参保号(grbh)同一天在同一家医疗机构(yymc)(,jgmc)就诊的人次数。请各位大师指导。要求的是按机构来统计时间段内每日就诊两次以上的数据。查询与手工统计出入较大,语句查询人次多。
各字段注释:from nb_yyzd【医院字典】、nb_bxjl【报销记录表】、nb_bxjl2【报销记录表2】、yybh=jgmc【医院字典的医院编号=报销记录表2的机构代码】、 bxlx=1【报销类型】、bxfs=2【报销方式】、glzf is null【作废记录的删除条件】、nb_bxjl2.bxid=nb_bxjl.bxid【报销记录表与报销记录表2的bxid(报销ID)相关联】、【bxrq=报销日期】

第1个回答  2013-08-20
子查询统计里group by 少了一个jgmc
select grbh from nb_bxjl group by grbh,CONVERT( CHAR(20),bxrq, 111 ) ,jgmc having count(grbh)>1
第2个回答  2013-08-20
group by 少一个字段,加上grbh
再说你这表结构不清晰,
表二:nb_bxjl【报销记录】
表三:nb_bxjl2【报销记录2】
分别记录的什么信息追问

表二:nb_bxjl【报销记录】 :里面记录了患者的报销信息,有bxid字段和nb_bxjl2表里面的bxid是一样的,要取里面的grbh(个人编号)和bxrq(报销日期),将个人编号在相同日期里的超过1条以上的信息予以统计。
表三:nb_bxjl2,表二和表三管关联要取的是这个表里面的jgmc,也就是机构编码。

追答

你这个是查询所有的了,包括就诊一次的

group by yymc,jgmc,grbh

having(count(grbh)>1)

你这个日期是输入的的吧
如果是时间段,group by还要加上bxrq

相似回答