表中多条记录有相同的ID,怎么样汇总?

BigIdiot628 2006-04-12 08:15:55
如:表一
ID QTY TOTAL
1 12
2 12
1 8
2 18
2 20
1 50
表二:
ID QTY TOTAL
1 12 70
1 8
1 50
2 12 50
2 18
2 20

通过表一中的记录,汇总成表二中的记录?
用什么方法?
...全文
272 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
Knight94 2006-04-13
  • 打赏
  • 举报
回复
那你还不如在数据库方面去做更简单些
BigIdiot628 2006-04-13
  • 打赏
  • 举报
回复
这样感觉挺麻烦,请问有没有更好的方法。
如果数据很多的时候,会很慢的?
qinxiaoya 2006-04-13
  • 打赏
  • 举报
回复
各位高手,打扰了!我是一家颇具规模的IT 公司,目前正在招聘.NET开发工程师,工作地点在北京,薪资待遇从优,联系我啊!MSN:qinxiaoya@hotmail.com
BigIdiot628 2006-04-13
  • 打赏
  • 举报
回复
呵呵……现在还是用楼上的方法做的。
把表中所有不相同的ID保存到 int[] 中;
循环数组中的 ID;
用ID汇总,再通过ID在视图中过滤,得到过滤后的第一行,
再把汇总的结果保存到第一行的 TOTAL 列中。
Knight94 2006-04-13
  • 打赏
  • 举报
回复
Sample code as follows:

DataTable myTable;
myTable = myDataSet.Tables["yourTable"];

// Declare an object variable.
object objSum;
objSum = myTable.Compute("Sum(QTY)", "ID = 1");
David_du 2006-04-13
  • 打赏
  • 举报
回复
直接在SQL中写吧
BigIdiot628 2006-04-13
  • 打赏
  • 举报
回复
如:表一
ID QTY TOTAL
1 12
2 12
1 8
2 18
2 20
1 50
3 20
4 30
表二:
ID QTY TOTAL
1 12 70
1 8
1 50
2 12 50
2 18
2 20
3 20 20
4 30 30

通过表一中的记录,汇总成表二中的记录?
用什么方法?

是在DataSet的DataTable中。
那怎么样计算?
BigIdiot628 2006-04-13
  • 打赏
  • 举报
回复
呵呵……
为在在报表中显示如下结果,最后还是在表中处理。用视图之类的。
报表显示结果。


ID QTY TOTAL
1 20 90
1 30
1 40
2 10 60
2 20
2 30
3 50 50
4 100 100
huangguangdou 2006-04-13
  • 打赏
  • 举报
回复
建议在数据库中作处理。
-渔民- 2006-04-13
  • 打赏
  • 举报
回复
不一定要在程序上做吧,可以用數據庫來完成就容易多了
Knight94 2006-04-13
  • 打赏
  • 举报
回复
Sql

update yourTable Set yourTable.Total = SumTable.TotalCount
From yourTable,
( Select ID, Sum( QTY ) as TotalCount From yourTable Group By ID ) as SumTable
Where yourTable.ID = SumTable.ID
Knight94 2006-04-13
  • 打赏
  • 举报
回复
表二:
to
ID QTY TOTAL
1 12 70
1 8 70
1 50 70
2 12 50
2 18 50
2 20 50
3 20 20
4 30 30

恩,这种好做多了,你用SQL修改更简单
BigIdiot628 2006-04-13
  • 打赏
  • 举报
回复
如:表一
ID QTY TOTAL
1 12
2 12
1 8
2 18
2 20
1 50
3 20
4 30
表二:
ID QTY TOTAL
1 12 70
1 8
1 50
2 12 50
2 18
2 20
3 20 20
4 30 30

由表一做成表二不好做。

表二:
ID QTY TOTAL
1 12 70
1 8 70
1 50 70
2 12 50
2 18 50
2 20 50
3 20 20
4 30 30

这种就好做些吧。
Knight94 2006-04-13
  • 打赏
  • 举报
回复
to 让相同ID的记录,汇总结果只保存在对应ID行记录的第一行

这一点,不太好做,不知道你的顺序是如何
BigIdiot628 2006-04-13
  • 打赏
  • 举报
回复
那如果在数据库中用查询语句怎么样写。
让相同ID的记录,汇总结果只保存在对应ID行记录的第一行。
Knight94 2006-04-12
  • 打赏
  • 举报
回复
如果是DataTable,其本身就支持compute方法。
Knight94 2006-04-12
  • 打赏
  • 举报
回复
是在数据库中吗,为什么这么设计?
令人不解

110,535

社区成员

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

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

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