数据合并问题

chgjz 2010-10-09 04:08:41
在dataset 中 有个数据表
id name qty amt
1 A 1 100
1 A 2 200


现在想把这个表的相同id 的数据 合并如下:
id name qty amt
1 A 3 300


qty(数量)与 amt(金额) 累加一起 其它字段不用 ,如何实现??
...全文
133 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
chgjz 2010-10-10
  • 打赏
  • 举报
回复
除了楼上说用Dictionary 还有其他方法吗??
fwacky 2010-10-09
  • 打赏
  • 举报
回复
就是,遍历 判断 相加!
anliuty 2010-10-09
  • 打赏
  • 举报
回复
如果你要的结果是DataTable,那么

//假设你的源表为source,注意数据类型转换时,根据你的实际类型转换,我只是举个例子
Dictionary<string,DataRow> dict = new Dictionary<string, DataRow>();
foreach (DataRow row in source.Rows)
{
if(dict.ContainsKey(row["name"].ToString()))
{
dict[row["name"].ToString()]["qty "] = int.Parse(dict[row["name"].ToString()]["qty "].ToString()) + int.Parse(row["qty"].ToString());
dict[row["name"].ToString()]["amt "] = int.Parse(dict[row["name"].ToString()]["amt "].ToString()) + int.Parse(row["amt"].ToString());
}
else
{
dict.Add(row["name"].ToString(),row);
}
}
DataTable table = source.Clone();
foreach (var dataRow in dict)
{
table.Rows.Add(dataRow);
}
anliuty 2010-10-09
  • 打赏
  • 举报
回复

//假设你的源表为source,注意数据类型转换时,根据你的实际类型转换,我只是举个例子
Dictionary<string,DataRow> dict = new Dictionary<string, DataRow>();
foreach (DataRow row in source.Rows)
{
if(dict.ContainsKey(row["name"].ToString()))
{
dict[row["name"].ToString()]["qty "] = int.Parse(dict[row["name"].ToString()]["qty "].ToString()) + int.Parse(row["qty"].ToString());
dict[row["name"].ToString()]["amt "] = int.Parse(dict[row["name"].ToString()]["amt "].ToString()) + int.Parse(row["amt"].ToString());
}
else
{
dict.Add(row["name"].ToString(),row);
}
}
chgjz 2010-10-09
  • 打赏
  • 举报
回复
数据源是其它系统提供的,所以不能直接SQL操作。帮帮忙该怎么写遍历代码
anliuty 2010-10-09
  • 打赏
  • 举报
回复
可以是可以,遍历datatable,
但是没必要那么做,费时费力,直接在sql中完成多方便
chgjz 2010-10-09
  • 打赏
  • 举报
回复
能不能在已有的DATASET上做操作啊?
手抓宝 2010-10-09
  • 打赏
  • 举报
回复
select sum(qty) as qty,sum(amt) as amt from 表 group by id

这个对,嘿嘿
kkbac 2010-10-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 chgjz 的回复:]
在dataset 中 有个数据表
id name qty amt
1 A 1 100
1 A 2 200


现在想把这个表的相同id 的数据 合并如下:
id name qty amt
1 A 3 300


qty(数量)与 amt(金额) 累加一起 其它字段不……
[/Quote]

select
[id],
sum([qty]),
sum([amt])
from
[表名]
group by [id]
手抓宝 2010-10-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hrabeyond 的回复:]
select sum(qty,amt) from 表 group by id
[/Quote]

瞎写的,不对
anliuty 2010-10-09
  • 打赏
  • 举报
回复
在查询数据库的阶段去做这件事情
手抓宝 2010-10-09
  • 打赏
  • 举报
回复
select sum(qty,amt) from 表 group by id
chgjz 2010-10-09
  • 打赏
  • 举报
回复
来人啊~~~
chgjz 2010-10-09
  • 打赏
  • 举报
回复
顶~~~~~~

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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