【发布时间】:2012-06-25 17:54:08
【问题描述】:
我正在尝试将购物篮写入来自 C# asp.net 的 sql 数据库中的订单 + 订单行。 订单行将包含购物篮中每件商品的订单编号、总价、产品编号、数量等。订单本身将包含订单号作为主键,并将通过它链接到不同的行。 昨天一切正常,但现在当我尝试在 insert into 语句中使用 SELECT 命令以使事情变得更加动态时,我得到了上述语法错误。
有人知道这句话有什么问题吗:
INSERT INTO [order]
(klant_id,totaalprijs,btw,subtotaal,verzendkosten)
SELECT klant.id
, SUM(orderregel.totaalprijs)
, SUM(orderregel.btw)
, SUM(orderregel.totaalprijs) - SUM(orderregel.btw)
, 7.50
FROM orderregel
INNER JOIN
klant
ON [order].klant_id = klant.id
WHERE klant.username = 'jerry'
GROUP BY
id;
“订单”表中的订单号在自动编号上,在 asp 代码隐藏中,有一个 for each 用于处理为每个产品编写的行,在此循环之外有一个索引设置为 0,并且每增加一个 1结束它。订单的executenonquery只在第一个循环开始时执行一次,后面加上MAX(ordernumber)作为ordernumber的行。
我希望我提供了足够的信息并且有人能够帮助我。 提前致谢!
编辑: 谢谢大家,使用这个查询就可以了!
插入 [订单] (klant_id,totaalprijs,btw,subtoaal,verzendkosten) SELECT (SELECT klant.id FROM klant WHERE klant.username = 'jerry') ,
SUM(orderregel.totaalprijs) , SUM(orderregel.btw) ,
SUM(orderregel.totaalprijs) - SUM(orderregel.btw) , 7.50 FROM
订单regel;
【问题讨论】:
-
您的 EDIT 查询将不起作用。尝试插入两个订单。然后检查您的第二个订单的totaalprijs 是否正确。
-
嗯,是的,我注意到了,你在这里看到修复了吗?我现在尝试一个人做,但整天忙于工作,回家后编程对我艰难的过程来说不太好;)
-
您必须弄清楚如何插入订单和订单行之间的关系。我的回答中有一个可能的解决方案。我会在上面睡一晚:)
-
好的,谢谢伙计,也许这是最好的。我已经很久没有编程了,但没过多久我就时不时地找出休息时间,然后真的给你新的想法和对事物的看法!