求助一条语句,在线等

烈火焚身 2008-04-30 10:54:01
Id3 id1 id2
1 0022-0396_2008_244 0022-0396_2008_244_1
2 0022-0396_2008_244 0022-0396_2008_244_2
3 0022-0396_2008_244 0022-0396_2008_244_3
4 0022-0396_2008_244 0022-0396_2008_244_4
5 0022-0396_2008_244 0022-0396_2008_244_5
6 0022-0396_2008_244 0022-0396_2008_244_6
1 0022-0531_2008_138 0022-0396_2008_138_1
1 0022-0531_2008_139 0022-0396_2008_139_1
表中数据如图,id2是主键。我想通过查询得到这样的结果:
0022-0396_2008_244 1,2,3,4,5,6
0022-0531_2008_138 1
0022-0531_2008_139 1
不知道可以实现不?焦急等待中……
...全文
117 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuyann 2008-04-30
  • 打赏
  • 举报
回复

有兴趣的话,可以加入这个新群
19055578 - CSDN-VBA&Access

=========================================================
可加入QQ群 19055578 晚19:00 - 24:00在线
=========================================================


下午要开会了
==== ====
烈火焚身 2008-04-30
  • 打赏
  • 举报
回复
大侠,请加我QQ:185849461

liuyann 2008-04-30
  • 打赏
  • 举报
回复

剩下的逗号可以用IF MID函数在SQL中填加实现,

同样也可在你和应用程序中实现
==== ====
liuyann 2008-04-30
  • 打赏
  • 举报
回复

1-8
用SQL应该还可以解决

select id1,sum(id3 * 10^(id3-1)) as col
from table3
group by id1


没有逗号怎么样?
==== ====
liuyann 2008-04-30
  • 打赏
  • 举报
回复

1-8
用SQL应该还可以解决
==== ====
烈火焚身 2008-04-30
  • 打赏
  • 举报
回复
难说:有可能还是这种形式呢
1-8
可以编个程序给我么?我不知道怎么写
liuyann 2008-04-30
  • 打赏
  • 举报
回复

你最大的Id3是几?


==== ====
liuyann 2008-04-30
  • 打赏
  • 举报
回复

如果多的化>10以上 --->> 溢出


==== ====
烈火焚身 2008-04-30
  • 打赏
  • 举报
回复
楼上那位大侠,运行要提示溢出.那是为什么啊?
liuyann 2008-04-30
  • 打赏
  • 举报
回复

由于您是新用户,所以特此介绍一下结贴的方法


如果您问题已经得解决,请您及时结帖给分,以感谢帮助您的朋友。

结帖方法:点击版面右上方或右下方 [管理] ,进入页面后就可以输入密码,分别给分,结帖。
或参考:
http://www.csdn.net/help/over.asp
http://topic.csdn.net/u/20080110/19/7cb462f1-cac6-4c28-848e-0a879f4fd642.html
=============================================================================
问题解决,请及时结贴。
正确结贴方法:
管理帖子-->给分-->输入密码-->结贴
==== ====
liuyann 2008-04-30
  • 打赏
  • 举报
回复

这种方法,简单查有限制,位数不多的情况可以,如果多的化>10以上则用VBA实现了
==== ====
liuyann 2008-04-30
  • 打赏
  • 举报
回复

id1	Expr1001
0022-0396_2008_244 6,5,4,3,2,1
0022-0531_2008_138 1
0022-0531_2008_139 1

==== ====
liuyann 2008-04-30
  • 打赏
  • 举报
回复

select id1,replace(col,"0",",")
from (
select id1,sum(id3 * 100^(id3-1)) as col
from table3
group by id1) a

==== ====
liuyann 2008-04-30
  • 打赏
  • 举报
回复

table3
Id3	id1	id2
1 0022-0531_2008_138 0022-0396_2008_138_1
1 0022-0531_2008_139 0022-0396_2008_139_1
1 0022-0396_2008_244 0022-0396_2008_244_1
2 0022-0396_2008_244 0022-0396_2008_244_2
3 0022-0396_2008_244 0022-0396_2008_244_3
4 0022-0396_2008_244 0022-0396_2008_244_4
5 0022-0396_2008_244 0022-0396_2008_244_5
6 0022-0396_2008_244 0022-0396_2008_244_6

==== ====
zccmy22 2008-04-30
  • 打赏
  • 举报
回复
create table tb(id int, id1 varchar(20)) 
insert into tb values(0, '0022-0396_2008_244')
insert into tb values(1, '0022-0396_2008_244')
insert into tb values(2, '0022-0396_2008_244')
insert into tb values(3, '0022-0531_2008_138')
insert into tb values(4, '0022-0531_2008_139')
go

CREATE FUNCTION dbo.f_str(@val varchar(20))
RETURNS varchar(8000)
AS
BEGIN
DECLARE @r varchar(8000)
SET @r = ''
SELECT @r = @r + ',' + cast(id as varchar) FROM tb WHERE id1 =@val
RETURN STUFF(@r, 1, 1, '')
END
GO

-- 调用函数
SELECt id1, dbo.f_str(id1) as id FROM tb GROUP BY id1


这是sql的.供你参考
烈火焚身 2008-04-30
  • 打赏
  • 举报
回复
通过VBA编程实现也可以,麻烦大家了
liuyann 2008-04-30
  • 打赏
  • 举报
回复

OK 我先做个ACCESS,要模拟你的环境。
==== ====
烈火焚身 2008-04-30
  • 打赏
  • 举报
回复
liuyann 2008-04-30
  • 打赏
  • 举报
回复

Id3 等于 id2 的未位吗?
==== ====
烈火焚身 2008-04-30
  • 打赏
  • 举报
回复
那怎么写?????
加载更多回复(1)

7,732

社区成员

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

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