请教高手,如何用存储过程实现?

[复制链接]
查看11 | 回复2 | 2013-2-25 14:51:24 | 显示全部楼层 |阅读模式
A表
处理号
1
2
3
4
B表
处理号 备注
111
112
113
221
222
331
332
调用存储过程实现
C表
处理号备注
1 11 12 13
2 21 22 23
3 31 32
4
解释:想根据A表和B表,形成C表,C表的备注字段是B表中相同处理号的合集

回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
顶下
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
本帖最后由 smallblind 于 2013-2-16 16:17 编辑
只适用于sql2005以上版本,不支持2000,因为2000不支持 for xml用法create table TESTA
(
ID INT PRIMARY KEY
)
GO
CREATE TABLE TESTB
(
ID INT FOREIGN KEY REFERENCES TESTA(ID),
BZ CHAR(10)
)
GO
INSERT INTO TESTA
SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4
INSERT INTO TESTB
SELECT 1,'11' UNION ALL SELECT 1,'12'
UNION ALL SELECT 1,'13' UNION ALL SELECT 2,'21' UNION ALL SELECT 2,'22'
UNION ALL SELECT 3,'31' UNION ALL SELECT 3,'32'

SELECT B.ID as 处理号,ISNULL(LEFT(BZ,LEN(BZ)),'') as 备注 FROM (
SELECT ID,
(SELECT BZ+' ' FROM TESTB
WHERE ID=A.ID
FOR XML PATH('')) AS BZ
FROM TESTA A
GROUP BY ID
) B
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行