ASP实现将Access数据表中的同一字段的文本合并,并添加到新行?
Access里有这样一张表,有IDdeptname1东部室张三2东部室李四3西部室王五4西部室赵六使用ASP实现,需要得到结果5东部室张三,李四6西部室王五,赵六请各位大...
Access里有这样一张表,有 ID dept name
1 东部室 张三
2 东部室 李四
3 西部室 王五
4 西部室 赵六
使用ASP实现,需要得到结果 5 东部室 张三,李四
6 西部室 王五,赵六
请各位大侠指点!不胜感激! 展开
1 东部室 张三
2 东部室 李四
3 西部室 王五
4 西部室 赵六
使用ASP实现,需要得到结果 5 东部室 张三,李四
6 西部室 王五,赵六
请各位大侠指点!不胜感激! 展开
展开全部
ACCESS的话,估计得ASP里循环嵌套了
select distinct dept from table1 获取有几个部门,然后循环
set rs=server.CreateObject("adodb.recordset")
sql="select distinct dept from table1"
rs.open sql,conn,1,1
if rs.eof and rs.bof then
response.write("没有内容")
else
do until rs.eof
dept=rs("dept")
names=""
sql="select name from table1 where dept='"&dept&"'"
set rq=server.CreateObject("adodb.recordset")
rq.open sql,conn,1,1
if rq.eof and rq.bof then
else
do until rq.eof
names=names&rq("name")+","
rq.movenext
loop
rq.close
if(len(names)>0)
names=left(names,len(names)-1)
response.write("部门:"&dept&",人员:"&names)
rs.movenext
loop
end if
rs.close
具体的显示你再调整下。
select distinct dept from table1 获取有几个部门,然后循环
set rs=server.CreateObject("adodb.recordset")
sql="select distinct dept from table1"
rs.open sql,conn,1,1
if rs.eof and rs.bof then
response.write("没有内容")
else
do until rs.eof
dept=rs("dept")
names=""
sql="select name from table1 where dept='"&dept&"'"
set rq=server.CreateObject("adodb.recordset")
rq.open sql,conn,1,1
if rq.eof and rq.bof then
else
do until rq.eof
names=names&rq("name")+","
rq.movenext
loop
rq.close
if(len(names)>0)
names=left(names,len(names)-1)
response.write("部门:"&dept&",人员:"&names)
rs.movenext
loop
end if
rs.close
具体的显示你再调整下。
展开全部
/*行列转换
成绩表
id cname kecheng score
1 张三 语文 80
2 李四 语文 85
3 李四 英文 100
输出为
姓名 语文 英语
张三 80 0
李四 85 100
*/
语句为:
select cname as 姓名,max(yw) as 语文,max(yy) as 英文 from (
select cname,
case kecheng when '语文' then score else 0 end as yw,
case kecheng when '英语' then score else 0 end as yy
from cj
) as a group by cname
可简写为
select cname as 姓名,
max(case kecheng when '语文' then score else 0 end) as 语文,
max(case kecheng when '英语' then score else 0 end) as 英语
--,cast(avg(score*1.0) as decimal(18,2)) 平均分,sum(score) as 总分
from cj group by cname
在sql server 2005中 可写为
select cname as 姓名,max(isnull(语文,0)) as 语文,max(isnull(英语,0)) as 英语 from (
select * from cj as a pivot (max(score) for kecheng in (语文,英语)) as b --试着理解这句
) as c group by cname
成绩表
id cname kecheng score
1 张三 语文 80
2 李四 语文 85
3 李四 英文 100
输出为
姓名 语文 英语
张三 80 0
李四 85 100
*/
语句为:
select cname as 姓名,max(yw) as 语文,max(yy) as 英文 from (
select cname,
case kecheng when '语文' then score else 0 end as yw,
case kecheng when '英语' then score else 0 end as yy
from cj
) as a group by cname
可简写为
select cname as 姓名,
max(case kecheng when '语文' then score else 0 end) as 语文,
max(case kecheng when '英语' then score else 0 end) as 英语
--,cast(avg(score*1.0) as decimal(18,2)) 平均分,sum(score) as 总分
from cj group by cname
在sql server 2005中 可写为
select cname as 姓名,max(isnull(语文,0)) as 语文,max(isnull(英语,0)) as 英语 from (
select * from cj as a pivot (max(score) for kecheng in (语文,英语)) as b --试着理解这句
) as c group by cname
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建立一个临时表去处理逻辑:
执行前先删除临时表所有数据初始化,再整理表重新插入进去:
void 删除表()
{
sql="Delete * From 临时表";
...
}
void 插入操作类名(string deptName)
{
sql="Select from 表 where dept='"+deptName+"'"
//处理sql语句得出数据集合
....
//重新整理字段
int Sname=""; //变量存储合并列名
for(int i=0;i<数据集合.Count;i++)
{
Sname+=数据集合.列名.ToString()+“,"; //累加字段相同的值
}
Sname=Sname.SubString(0,Sname.Lenth-1); //把最后一个多余的逗号去掉
//把Sname插入到新的临时表
sql2=“Insert Into 临时表(dept,Name) values('"+deptName+"','"+Sname+"')";
.....
}
//最后要查刚才的dept逐条整理
void 执行操作类()
{
//初始化
删除表();
sql="select distinct sept from 表";
for(int i=0;i<ds.Tables[0].rows.Count;i++)
{
插入操作类名(ds.Tables[0].Rows[0][I].ToString()); //把不重复的列值作为变量去处理类
}
}
用ASP就要这么做,得出一个新的临时表,你会了吗
执行前先删除临时表所有数据初始化,再整理表重新插入进去:
void 删除表()
{
sql="Delete * From 临时表";
...
}
void 插入操作类名(string deptName)
{
sql="Select from 表 where dept='"+deptName+"'"
//处理sql语句得出数据集合
....
//重新整理字段
int Sname=""; //变量存储合并列名
for(int i=0;i<数据集合.Count;i++)
{
Sname+=数据集合.列名.ToString()+“,"; //累加字段相同的值
}
Sname=Sname.SubString(0,Sname.Lenth-1); //把最后一个多余的逗号去掉
//把Sname插入到新的临时表
sql2=“Insert Into 临时表(dept,Name) values('"+deptName+"','"+Sname+"')";
.....
}
//最后要查刚才的dept逐条整理
void 执行操作类()
{
//初始化
删除表();
sql="select distinct sept from 表";
for(int i=0;i<ds.Tables[0].rows.Count;i++)
{
插入操作类名(ds.Tables[0].Rows[0][I].ToString()); //把不重复的列值作为变量去处理类
}
}
用ASP就要这么做,得出一个新的临时表,你会了吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询