怎么合并表数据

handhappy 2013-01-07 03:58:07
表结构为 单号(外键)、开始日期、结束日期、预测量,
把一个单号的数据作为基准,找出其他单号中跟它开始日期和结束日期相同的,将数据综合起来,产生一个新的表,如下:
开始日期、结束日期、预测量(基准)、预测量(其他单号)
这种怎么实现?
...全文
157 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
handhappy 2013-01-11
  • 打赏
  • 举报
回复
找到另外一种方法解决了。
select 开始日期,结束日期,
sum(case when 单号=@基准 then 预测量 else 0 end) as '预测量(基准)',
sum(case when 单号=@其他 then 预测量 else 0 end) as '预测量'
from 表名
group by 开始日期,结束日期
handhappy 2013-01-08
  • 打赏
  • 举报
回复
引用 1 楼 yangdaboke 的回复:
先把两表数据提取出来,存在泛型集合内,再创建一张表,遍历泛型集合内的数据。
不是很懂泛型集合,能不能给个例子?
six-years 2013-01-07
  • 打赏
  • 举报
回复
同学 你的问题跟我篇博客很相似 属于分组合并字段 根据开始日期结束日期分组 在吧字符串行转列 我的博文 sql分组合并字段 sql字符串行转列
____Seven 2013-01-07
  • 打赏
  • 举报
回复
// 返回的datatable DataTable dtTableNeeds = dsMN.Tables[0].Clone(); // 原datatable DataTable dtTable = dsMN.Tables[0]; for (int i = 0; i < dsMN.Tables[0].Rows.Count; i++) { decimal count = 0; // 根据主键去查找 string sql = "CHD_PRDCT_CD='" + dsMN.Tables[0].Rows[i]["CHD_PRDCT_CD"].ToString() + "' and START_DATE='" + dsMN.Tables[0].Rows[i]["START_DATE"].ToString() + "'"; // 找不到的时候 if (dtTableNeeds.Select(sql).Length == 0) { // 原datatable中查找 DataRow[] rows = dtTable.Select(sql); // 取到第一行的数量 count = Convert.ToDecimal(rows[0]["ROHJZCLNUM"].ToString()); // 查找到多行数据 for (int j = 1; j < rows.Length; j++) { // 累加数量 count = count + Convert.ToDecimal(rows[j]["ROHJZCLNUM"].ToString()); } // 累加后的数量赋值给第一行数据 rows[0]["ROHJZCLNUM"] = count; // 将第一行数据添加到返回的额datatable dtTableNeeds.Rows.Add(rows[0].ItemArray); } } 这是一个合并数量的例子。思想差不多。就是把日期相同的数据的数量合计起来。
yangdaboke 2013-01-07
  • 打赏
  • 举报
回复
先把两表数据提取出来,存在泛型集合内,再创建一张表,遍历泛型集合内的数据。

110,533

社区成员

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

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

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