请问:结构完全相同的表,如果进行合并?谢谢

ldg9tpl 2013-08-03 05:44:01
各位大侠,希望帮一把啊,谢谢啊!我的问题很简单咯,描述也很清晰。

四个SQL语句如下:
select top 5 * from table where [city]='城市' and [sex]='性别' and [date]='7月份' order by [销售额] desc

页面上用两个Repeater数据控件来绑定——
第一个数据控件绑定北京分公司优秀销售员,先5个女再5个男
第二个数据控件绑定上海分公司优秀销售员,先5个女再5个男

SQL语句1结果集
[city] [sex] [name] [money] [date]
北京 男 张伟 3500 7月份
北京 男 王杰 3000 7月份

SQL语句2结果集:
[city] [sex] [name] [money] [date]
北京 女 李琴 4500 7月份
北京 女 周敏 2800 7月份

SQL语句3结果集:
[city] [sex] [name] [money] [date]
上海 男 高昆 4200 7月份
上海 男 陈强 2800 7月份

SQL语句4结果集:
[city] [sex] [name] [money] [date]
上海 女 刘薇 3600 7月份
上海 女 汪菲 3300 7月份

存储过程如下:
exec(@SQL1+';'+@SQL2+';'+@SQL3+';'+@SQL4);

C#代码要实现的效果如下:
Repeater_beijing.DataSource = ds.Tables[1].DefaultView; //北京5女
Repeater_beijing.DataSource = ds.Tables[0].DefaultView; //北京5男
Repeater_beijing.DataBind();

Repeater_shanghai.DataSource = ds.Tables[3].DefaultView; //上海5女
Repeater_shanghai.DataSource = ds.Tables[2].DefaultView; //上海5男
Repeater_shanghai.DataBind();


请问各位大侠,两种现实方式——
方式1:在数据库中直接用临时表合并后,分别输出北京和上海两个表;
方式2:输出四个表,用C#代码来现实合并。
哪种方式少占资源、处理速度快?

还有,如果照我现在的代码,直接输出四个表,然后通过C#来合并,具体怎么个合并法?
网上有人说SQL的union可以合并,但union无法实现指定排序,临时表合并的话,我相信可以。
直接用DataSet输出四个表,用DataSet的Merge方法来合并,怎么能实现这样的合并。我看参数太多了,不知道怎么用,请给一个示例,好吗?

非常感谢大家啊,谢谢啦!

...全文
176 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
happytonice 2013-08-03
  • 打赏
  • 举报
回复
按1楼的可以
likofans 2013-08-03
  • 打赏
  • 举报
回复
DataSet ds1=new DataSet();
ds1.merge(ds.Tables[1]);
ds1.merge(ds.Tables[0]);
Repeater_beijing.DataSource =ds1;
Repeater_beijing.DataBind();
 
 
DataSet ds2=new DataSet();
ds2.merge(ds.Tables[2]);
ds2.merge(ds.Tables[3]);
Repeater_shanghai.DataSource = ds2;
Repeater_shanghai.DataBind();
likofans 2013-08-03
  • 打赏
  • 举报
回复
DataSet ds=new DataSet();
ds.merge(ds.Tables[1]);
ds.merge(ds.Tables[0]);
Repeater_beijing.DataSource =ds;
Repeater_beijing.DataBind();


DataSet ds2=new DataSet();
ds2.merge(ds.Tables[2]);
ds2.merge(ds.Tables[3]);
Repeater_shanghai.DataSource = ds2;
Repeater_shanghai.DataBind();
baysos 2013-08-03
  • 打赏
  • 举报
回复
select * from( select top 5 * from table union select top 5 * from table1 ) t where t.[city]='城市' and t.[sex]='性别' and t.[date]='7月份' order by t.[销售额] desc 大致是这种结构

110,500

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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