通过XML PATH在select中进行字符串合并(sql2005)

今天制作程序时遇到一个要求,有主表和明细表,主表略,明细表如下

图号

专业

晒图数

规格

主表ID

Jz-01

建筑

1

A0

1

JG-01

结构

2

A2

Jz-02

JG-03

1

1

要求在专业、晒图数、规格相同的情况下,对图号进行合并,结果如下

图号

专业

晒图数

规格

主表ID

Jz-01jz-02

建筑

1

A0

1

JG-01JG-03

结构

2

A2

1

2

因为涉及到数据合并,用程序实现比较麻烦,考虑用sql实现。参考了下面的文章后有了思路:http://www.cnblogs.com/doubleliang/archive/2011/07/06/2098775.html

SELECT disTINCT
 DwgNO = STUFF(( SELECT ',' + [DwgNO]
 FROM 明细表 t
 WHERE 明细表.主表ID = t.主表ID
 AND 明细表.规格 = t.规格
 AND 明细表.专业 = t.专业
 AND 明细表.晒图数 = t.晒图数
 AND IsDel = 0
 FOR
 XML PATH('')
 ),1,''),主表ID,规格,专业,晒图数
FROM 明细表
WHERE IsDel = 0

即可实现表2效果






相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念