【问题标题】:Datagridview sum of same identical rowsDatagridview 相同行的总和
【发布时间】:2014-01-10 16:37:32
【问题描述】:

我有一个基本上是这样的 sql 表:

如您所见,有些数据使用相同的 ProductID(1002 和 1004)。我希望这张表与相同 ProductID 的行相加并合并。

我正在使用 c# 和 dataGridView。我们可以通过 sql 查询对这些值求和然后将其加载到 dataGridView 吗?或者我必须创建一个 if - for etc.. 语句来检查和汇总 dataGridView 行?

编辑:

大卫的回答:

   select * from tblOrderDetail where OrderID in 
   (select OrderID from tblOrders whereCustomerID = 231234)

 // Select * at start gets the ProductID and Quantity 

我如何将您的解决方案添加到此?当我尝试几件事时,我在使用“in”子句时遇到了错误。

【问题讨论】:

  • 您遇到了什么错误?你的这个新问题(也许你应该作为一个新问题提出)与原来的问题有什么关系?
  • 错误是“列 tblOrderDetail.OrderDetailID 在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中。”实际上,我为这个查询问了这个问题。我只是想让它看起来简单易用。
  • 因此,tblOrderDetail 中不属于您要添加的内容的任何列都需要进入 GROUP BY 子句。如果不清楚,请发布这些列的实际内容。
  • @DavidWallace 这显然是表格的一部分。我收到此错误是因为我不习惯 sql 查询语言的语法或其他任何语言。我会在语法上尝试不同的方法。感谢 SUM 功能。非常感谢。
  • 因此,除了要添加的部分之外,您选择的任何内容都需要列在 GROUP BY 旁边。

标签: c# sql datagridview sum


【解决方案1】:
SELECT   productID, SUM(Quantity) AS Quantity
FROM     myTable
GROUP BY productID

【讨论】:

  • 当我像这样尝试这段代码时,它可以工作,但我们可以将此方法安排到我的查询中吗?我更新了我的问题。
  • David 我们可以用 Select * 代替 ProductID 吗?
  • 最好不要使用 select *,因为您希望能够指定哪些列被添加,哪些不被添加。列出您实际需要的列。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-24
  • 2016-03-17
  • 2015-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多