我正在尝试将购物篮写入来自 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) 作为订单号。
我希望我提供了足够的信息,并且有人能够帮助我。提前致谢!
编辑:谢谢大家,使用这个查询做到了!
插入 [order] (klant_id,totaalprijs,btw,subtotaal,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
orderregel;