【发布时间】:2014-05-15 23:02:30
【问题描述】:
我有三个表,一个包含可用产品的列表,其中包含产品价格等相关详细信息,另一个包含订单,最后一个包含特定订单详细信息,包括订单中购买的商品。
我正在尝试创建一个查询来计算订单的总价格,方法是使用内部连接链接两个表,然后使用该值更新订单表。我编写的代码包含语法错误,作为一个新手,我可能犯了一个明显的错误,但我们将不胜感激。
"SELECT Sum(ProductTable.prodPrice) AS Total, OrderDetailTable.orderID " +
"FROM ProductTable INNER JOIN OrderDetailTable " +
"ON ProductTable.prodID = OrderDetailTable.prodID " +
"GROUP BY OrderDetailTable.orderID " +
"HAVING OrderDetailTable.orderID = ? " +
"UPDATE OrderTable " +
"SET " +
"totalPrice = Total " +
"WHERE OrderTable.orderID = ? ";
我正在使用 Access。 我也忘了提那个?使用 Dataview 参数表示
pc.Add(new Parameter("?", TypeCode.Int32, basketId.ToString()));
编辑:使用 PaqoGomez 的建议将 Total 声明为一个值,我现在得到错误:查询表达式 '0WHERE OrderTable.orderID = ?' 中的语法错误(缺少运算符)。
【问题讨论】:
-
来自查询的更新往往是特定于供应商的。您使用的是什么 DBMS?
-
我正在使用 Microsoft Access
-
对不起,但几乎任何尝试都会导致“操作必须使用可更新查询”您可以尝试使用查询并加入到该查询中。
-
你能让这个工作吗?从这里看起来像是一个简单的字符串连接间距问题。请考虑投票、标记答案或评论对您有帮助的答案。
标签: c# sql ms-access select sum