根据某列数据相同情况合并DataTable的数据行
担心以下文本格式发帖后显示会很乱,所以做了张合并前、合并后的效果图,请大家下载来看看,感谢
图片地址: http://t.cn/zOl8Bqd
或http://s10.sinaimg.cn/middle/4d96ee05gbe7cbdf809d9&690
-----------合并前3条数据的BookName----------------
合并前
BookName DateLoanCardNo
1电脑管理与维护 2010-3-252001
2藏地密码 2010-3-252001
3档案信息检索 2010-3-252001
4射雕英雄传 2010-3-252002
5C#编程 2010-4-242002
---------下面是我要的合并效果----------------------
合并后
BookName DateLoanCardNo
1电脑管理与维护,2藏地密码,3档案信息检索2010-3-252001
4射雕英雄传 2010-3-252002
5C#编程 2010-4-242002
-----------------------------------------------------
为了方便给大家的测试,我把测试用的数据库代码放出来:
-----------给网友创建数据表和插入数据调试-------------
create table BookLoan(ID int primary key identity(1,1), BookName varchar(200), DateLoan datetime, CardNo varchar(200), )insert into BookLoan(BookName , DateLoan , CardNo ) values('1电脑管理与维护','2010-3-25','2001')insert into BookLoan(BookName , DateLoan , CardNo ) values('2藏地密码','2010-3-25','2001')insert into BookLoan(BookName , DateLoan , CardNo ) values('3档案信息检索','2010-3-25','2001')insert into BookLoan(BookName , DateLoan , CardNo ) values('4射雕英雄传','2010-3-25','2002')insert into BookLoan(BookName , DateLoan , CardNo ) values('5C#编程','2010-4-24','2002')
create table BookLoan(ID int primary key identity(1,1), BookName varchar(200), DateLoan datetime, CardNo varchar(200), )insert into BookLoan(BookName , DateLoan , CardNo ) values('1电脑管理与维护','2010-3-25','2001')insert into BookLoan(BookName , DateLoan , CardNo ) values('2藏地密码','2010-3-25','2001')insert into BookLoan(BookName , DateLoan , CardNo ) values('3档案信息检索','2010-3-25','2001')insert into BookLoan(BookName , DateLoan , CardNo ) values('4射雕英雄传','2010-3-25','2002')insert into BookLoan(BookName , DateLoan , CardNo ) values('5C#编程','2010-4-24','2002')if object_id('getnum') is not nulldrop function getnumcreate function getnum(@DateLoan varchar(50),@CardNo varchar(50))returns varchar(50)as begindeclare @sql varchar(50)set @sql=''select @sql=@sql+BookName+',' from BookLoan where DateLoan=@DateLoan AND CardNo=@CardNoset @sql=@sqlreturn @sqlendSELECT DISTINCT LEFT(dbo.getnum(DateLoan,CardNo),LEN(dbo.getnum(DateLoan,CardNo))-1) AS BookName,DateLoan,CardNo FROM BookLoan GROUP BY DateLoan,CardNo,BookName/*BookName DateLoan CardNo-------------------------------------------------- ----------------------- ----------------1电脑管理与维护,2藏地密码,3档案信息检索 2010-03-25 00:00:00.000 20014射雕英雄传 2010-03-25 00:00:00.000 20025C#编程 2010-04-24 00:00:00.000 2002(3 行受影响)*/
[解决办法]