两张桌子:
CART(CartID,UserID,DateCreated,ProductID,ProductName,尺寸,价格,数量,小计,营业时间)
产品(产品ID,名称,标注,价格,尺寸,图像,缩略图,重量,LDescription,库存,CategoryID,营业时间)
我正在开发电子商务网站的购物车/购物篮页面。特别: “+”链接按钮可在购物车中将所选产品的数量增加1,并且 稍后使用“ - ”链接按钮将购物车中所选产品的数量减少1。
除数量外,还需要更新购物车表的小计和 HoursWork 字段。小计:计算总订单总价。营业时间:计算预订时间所需的小时数。
到目前为止,我有一个SQL语句来检查产品。库存获取值> 0
如果满足此条件,则会运行SQL语句来更新Cart, (数量 =数量+ 1,小计 = @Subtotal + @Price WHERE CartID = @CartID)和产品(库存 = Stock - 1 WHERE ProductID = @ProductID)。
我正在努力为购物车添加 HoursWork 。所以我创建了一个新的SQL语句进行测试。我需要Cart.HoursWork字段,在购物车中添加同一ProductID的Products.HoursWork字段值。
到目前为止,我有:
"UPDATE Cart
SET HoursWork = HoursWork +
SELECT HoursWork
FROM Products
WHERE Products.ProductID = Cart.ProductID
WHERE CartID = @CartID"
早些时候我尝试过:
"UPDATE Cart
SET HoursWork = Cart.HoursWork + Product.HoursWork
WHERE ProductID = @ProductID
FROM Cart, Products
WHERE CartID = @CartID"
购物车中每件商品的cartID,ProductID,ProductName,尺寸,价格,数量,小计,工时和重量都存储在易于访问的变量中。
答案 0 :(得分:0)
如果语法正确,也许你的代码会起作用。子查询必须括在括号中:
UPDATE Cart
SET HoursWork = (HoursWork +
(SELECT p.HoursWork
FROM Products p
WHERE p.ProductID = Cart.ProductID
)
)
WHERE CartID = @CartID;