注册 登录
编程论坛 SQL Server论坛

一个有关福彩3D的查询语句

发布于 2008-06-02 19:29, 973 次点击
我的数据库中有两张表:A表,3个字段(A1,A2,A3),每个字段中放0-9这十个数字的五码组合,共有记录800多万条;    B表,2个字段(A2,ZB),A2中放开奖号码(三位数、字符型),zB中放组号(数字型),每5期为一组,共有17组、85条记录。
    我想查询A表中哪一种组合在B表中出现次数最多?“出现一次”是指:开奖号码的百、十、个位分别包含在A 表的A1、A2、A3中,并且组号相同只算一次。
    我是新手,仅写出如下语句:
select   a.*,b.zb  from a,b where charindex(substring(b.a2,1,1),a.a1)>0  and charindex(substring(b.a2,2,1),a.a2)>0 and charindex(substring(b.a2,3,1),a.a3)>0
再向下写总出错,请高手帮忙!!!
2 回复
#2
happynight2008-06-02 22:44
你ZB表和A2表的关联看不明白,你B表是用来干什么的,你详细的写下每个表的结构和之间的关联以及表的用途
#3
2008-06-03 16:33
回复 2# happynight 的帖子
不是ZB表、A2表。是A表、B表。
A表字段:A1、A2、A3,均为字符型。B表字段:A2、ZB,均为字符型。
A表存放0-9这十个数字的五码组合   B表放的是开奖号码:
的所有组合:                     A2       ZB
 A1     A2     A3                037      1
01234  01234  01234              456      1
01234  01234  01235              789      1
01234  01234  01236              154      1
...    ...    ...                ...      ...
56789  56789  56789              542      17
共有800多万条记录                每5条记录为一组,ZB就是组编号,共17组
要求查询出A表中的A1、A2、A3以及每种组合的出现次数。
查询条件是:
1、B.A2的百位包含在A.A1中,并且B.A2的十位包含在A.A2中,并且B.A2的个位包含在A.A3中
2、A.A1、A.A2、A.A3如果在B表的同一组中满足条件多次,则不重复计数,只当作一次。
1