2015-06-09 62 views
0

我的代码:如何获得另一列的项目值=值的列的总和?

string hweight = "Hunters"; 
string hsql = "SELECT SUM(Weight), Product From Opened WHERE Product =" + hweight; 

OleDbCommand hcmd = new OleDbCommand(hsql,conn); 
txtHunters.Text = hcmd.ExecuteScalar().ToString(); 

然后我收到以下错误:

You tried to execute a query that does not include the specified expression 'Product' as part of an aggregate function.

+4

您缺少'group by'子句。 –

+1

和你的字符串的SQL引号。 –

+0

http://en.wikipedia.org/wiki/Aggregate_function –

回答

1

你的SQL应该是:

SELECT SUM(Weight), Product From Opened WHERE Product =" + hweight + " GROUP BY Product" 

当你使用你的东西应该将它们分组聚合函数!在你的情况下,产品领域!

+0

感谢您的帮助 –

+0

欢迎您! – CrazyMenConnected

2

您尽量选择字段/列,并在同一时间使用聚合函数,即只有当你选定字段/列提供group by条款以及工作原理:

string hsql = "SELECT SUM(Weight), Product FROM Opened WHERE Product ='" + hweight + "' GROUP BY Product"; 
+0

Upvoted(但它的列,而不是领域...) – jarlh

+0

谢谢,我主要是写字段,对我来说他们指的是同样的事情 - 将包括列以及 – luk2302

+0

谢谢,非常有用 –

0

试试这个,

string hweight = "Hunters"; 
string hsql = "SELECT SUM(Weight), Product From Opened WHERE Product =" + hweight + " GROUP BY Product"; 
OleDbCommand hcmd = new OleDbCommand(hsql,conn); 
txtHunters.Text = hcmd.ExecuteScalar().ToString();