求一个复杂的SQL查询语句(100分)

  • 主题发起人 主题发起人 johnnywong
  • 开始时间 开始时间
J

johnnywong

Unregistered / Unconfirmed
GUEST, unregistred user!
A表:
BH(编号) XM(姓名) DZ(地址) DH(电话) LB(类别) DJSJ(登记时间) SLBH(受理编号) FKFS(付款方式)
1 黄五 广东广州 135000 A 2007-01-01 001 现金
2 黄五 广东广州 135000 C 2007-02-01 002 现金
3 黄五 广东省 135000 B 2007-03-01 003 现金
4 李四 湖南省 135000 B 2007-04-01 004 转账
5 谢三 贵州省 138000 B 2007-05-01 005 转账
6 谢二 贵州省 139000 B 2007-06-01 006 现金
7 谢一 贵州省 139100 B 2007-07-01 007 现金
8 谢百 贵州省 139200 B 2007-12-31 008 现金
数据库的表的:BH字段为integer类型 ;XM 为varchar类型; DZ为varchar类型; DH为varchar类型; LB为integer类型; DJSJ为varchar类型; SLBH为varchar类型; FKFS为varchar类型;
现在我想写个SQL语句,要求XM 或者DZ或者DH字段的纪录内容相同的而且数目超过2条以上(例如姓名为“黄五”的有三条,地址为“贵州省”的四条...),并且LB是‘A’或者‘B’的,DJSJ在‘2007-01-01’到‘2007-07-01’之间的所以纪录查询出来,请问这样的SQL语句该怎么写?
 
select *
from a
where ( xm in (select xm from a group by xm having(count(*)) > 2 )
or dz in (select dz from a group by xm having(count(*)) > 2 )
or dh in (select dh from a group by dh having(count(*)) > 2 )
)
and (lb = 'a' or lb = 'b')
and djsj >= '2007-01-01' and djsj <='2007-07-01'
你试一下
 
接受答案了.
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部