ACCESS数据库,如何统计字段中逗号分隔的值

flonline2005 2011-07-11 10:08:23
ACCESS数据库,如何统计字段中逗号分隔的值

如:表bz
id name bz
1 张三 a,b,c,d,e,f
2 王五 a,b,c
3 李四 d,f
4 张三 a
-----------------------------
结果:
bz hj
a 3
b 2
c 2
d 2
e 1
f 2

最好是能写一个完整的代码,程序是ASP的
...全文
277 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwwb 2011-07-12
  • 打赏
  • 举报
回复
打开记录集循环->用SPLIT函数拆分记录->将结果保存到表中->再 分组
flonline2005 2011-07-12
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 acmain_chm 的回复:]
创建一个辅助表,其中的内容是1,2,3,4,....N然后做JOIN查询。
但如果数据量大则这个方法效率极差,这种情况下则使用程序直接实现。
[/Quote]

程序直接实现,能说一下我具体应该怎么实现吗
flonline2005 2011-07-11
  • 打赏
  • 举报
回复
在线等。。。。。
flonline2005 2011-07-11
  • 打赏
  • 举报
回复
回复:wwxuelei

把%改用星号也是提示
[Microsoft][ODBC Microsoft Access Driver] FROM 子句语法错误。
wwxuelei 2011-07-11
  • 打赏
  • 举报
回复
这个主要是 在access里 不能用%,而是要用星号
flonline2005 2011-07-11
  • 打赏
  • 举报
回复
[Microsoft][ODBC Microsoft Access Driver] FROM 子句语法错误。
ACMAIN_CHM 2011-07-11
  • 打赏
  • 举报
回复
创建一个辅助表,其中的内容是1,2,3,4,....N然后做JOIN查询。
但如果数据量大则这个方法效率极差,这种情况下则使用程序直接实现。
挨踢直男 2011-07-11
  • 打赏
  • 举报
回复
select tmp.col,count(tmp.col) as hj from tb as a
join
(
select 'a' as col
union all
select 'b'
union all
select 'c'
union all
select 'd'
union all
select 'e'
union all
select 'f'
) as tmp
on a.bz like '%'+ tmp.col +'%'
group by col


col  hj
---- -----------
a 3
b 2
c 2
d 2
e 1
f 2

(6 行受影响)

WWWWA 2011-07-11
  • 打赏
  • 举报
回复
不知道你是否仔细看看别人的回复没有,
6楼
LSB1:字段ID,内容1-100000
flonline2005 2011-07-11
  • 打赏
  • 举报
回复
[Microsoft][ODBC Microsoft Access Driver] Microsoft Jet 数据库引擎找不到输入表或查询 'LSB'。 确定它是否存在,以及它的名称的拼写是否正确。
WWWWA 2011-07-11
  • 打赏
  • 举报
回复
不知道你测试 没有,怎么不行
SELECT aa1, Count(*) AS 表达式1
FROM (SELECT a.*, mid(',' & A.bz_zx & ',',b.id1+1,instr(b.id1+1,',' & A.bz_zx & ',',',')-b.id1-1) AS aa1
FROM kf AS A LEFT JOIN LSB1 AS B ON B.ID1<=LEN(',' & a.bz_zx & ',')
WHERE MID(',' & A.bz_zx & ',',B.ID1,1)=',' and instr(b.id1+1,',' & A.bz_zx & ',',',')>0)
GROUP BY aa1;
flonline2005 2011-07-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wwwwa 的回复:]
引用 7 楼 flonline2005 的回复:
回复:WWWWA

我要的是下面的一个结果,表bz中的字段都是变量的

如:表bz
id name bz
1 张三 a,b,c,d,e,f
2 王五 a,b,c
3 李四 d,f
4 张三 a
-----------------------------
结果:
bz hj
a 3
b 2
c 2
d 2
e 1
……
[/Quote]

我试了不行这是我的数据库http://access911.net/csdn/FileDescription.asp?mdb=2011-7-11&id=8
WWWWA 2011-07-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 flonline2005 的回复:]
回复:WWWWA

我要的是下面的一个结果,表bz中的字段都是变量的

如:表bz
id name bz
1 张三 a,b,c,d,e,f
2 王五 a,b,c
3 李四 d,f
4 张三 a
-----------------------------
结果:
bz hj
a 3
b 2
c 2
d 2
e 1
f 2

这个SQL我具体应该怎……
[/Quote]
自己动手做一下吧,将示例中的A.B->BZ,再对结果分组
or
上传你的MDB到www.access911.net/csdn
只要有问题的表、查询,用WINRAR压缩
flonline2005 2011-07-11
  • 打赏
  • 举报
回复
回复:WWWWA

我要的是下面的一个结果,表bz中的字段都是变量的

如:表bz
id name bz
1 张三 a,b,c,d,e,f
2 王五 a,b,c
3 李四 d,f
4 张三 a
-----------------------------
结果:
bz hj
a 3
b 2
c 2
d 2
e 1
f 2

这个SQL我具体应该怎么写

WWWWA 2011-07-11
  • 打赏
  • 举报
回复
示例:
A B C aa1
1 11,22 2001 11
1 11,22 2001 22
2 22,33,44 2000 22
2 22,33,44 2000 33
2 22,33,44 2000 44

SELECT a.*, mid(',' & A.B & ',',b.id1+1,instr(b.id1+1,',' & A.B & ',',',')-b.id1-1) AS aa1
FROM rr11 AS A LEFT JOIN LSB1 AS B ON B.ID1<=LEN(',' & a.B & ',')
WHERE MID(',' & A.B & ',',B.ID1,1)=',' and instr(b.id1+1,',' & A.B & ',',',')>0;

LSB1:字段ID,内容1-100000
软件详细信息 软件可建立并管理Access数据库、Xbase数据库、Excel数据库及Text文本数据库。主要功能有: 一、字段开关与顺序控制功能。可控制数据显示表、记录排序表、浏览编辑状态及数据导出结果。换言之,只能显示、排序、编辑及导出被添加的字段,且显示、排序、编辑及导出结果的顺序与添加字段的顺序一致。 二、数据计算与编辑功能。包括按线性公式批量修改记录、按工程公式批量修改记录、浏览编辑记录、修改单元格记录、增加记录、删除记录、合并记录等。 三、通用查询与检索功能。除可在全程或设定的范围内管理记录外,还可设定过滤条件,对只符合条件及规定范围内的记录进行操作。 四、数据排序功能。排序的结果可导出为Access数据(MDB)、Excel数据(XLS)、文本数据(TXT)、Xbase数据(DBF)等格式。  五、数据比较功能。可比较两个表的结构属性及记录异同情况,也可比较同一表两个字段的异同情况,并存储比较结果。  六、记录合并功能。可将数据表某列(关键字段)具有相同的所有记录数据进行合并。 七、记录连接功能。可将两个表符合条件(两个表各自选定的关键字段相同)的所有记录连接生成一个新的表。 八、数据统计功能。可对表数据以记录为单位进行汇总(横向统计)、也可以字段为单位进行汇总(纵向统计,即分类汇总)。统计的结果可导出为Access数据(MDB)、Excel数据(XLS)、文本数据(TXT)、Xbase数据(DBF)等格式。 九、数据导入导出功能。可将Access数据库、Xbase数据库、Excel数据库、Text文本数据库等四种格式的数据库格式进行相互导入导出。导出前可设置过滤条件、导出范围及导出字段开关与顺序。 十、文本数据分隔符转换功能。为了兼容除逗号以外的其它分隔符的文本文件,应用此模块进行分隔符转换(即替换),以适应本软件或用户其它软件的特殊要求。 十一、曲线显示与打印功能。不仅可显示任意字段变量随记录号的变化曲线,而且还可显示任意两个字段变量之间的关系曲线。显示的曲线可打印输出到WORD文档。 十二、结构维护功能。可新建库、压缩库、增加表、删除表、修改表名、增加字段、删除字段、修改字段属性(包括字段名称、字段类型、字段尺寸)。 十三、密码管理功能。可管理有密码的数据库,并具有设置密码、修改密码、清除密码、破解密码等功能。 十四、管理非Access文件。包括Xbase、Excel、Text等类型的文件,并可对记录数据进行查询检索、编辑、统计、排序,且管理的结果可导出为mdb、dbf、txt、xls等格式。 十五、用户可根据实际应用情况,自定义软件的名称、数据处理路径、数据备份路径等,使数据管理更加个性化。鼠标经过大多数控件处,均有相关帮助与提示信息。软件可在菜单方式与集成方式两种界面之间自由切换,并根据屏幕分辨率软件自动调节窗体,使窗体始终保持最大的可视界面,建议屏幕分辨率设置为1024×768为最佳。 与9.1版相比,9.2版增加了本数据分隔符转换功能;进一步完善了导入导出功能,使导入导出成功率更高。

7,712

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧