需要有关如何进行正确选择和更新查询的建议,我不确定我哪里出错了



select语句有效,但是,我可以弄清楚为什么它不更新价格。

仅在被定义时变量名的背景是购买的确认日期。PP是包含产品密钥和最终购买日期的表。

目的是根据上次购买的日子来更新价格,第二部分有一个额外的条款,该条款计算是否在20天内购买了少于5次。

SELECT book.p#, product.price 
FROM product,book
JOIN PP
ON pp.p# = book.p#
UPDATE PRODUCT
SET PRICE = product.price * 0.97
FROM PRODUCT
WHERE ((SYSDATE-whenfinalised)>=30);
SELECT video.p# , product.price,COUNT(video.p#)
FROM video,product
JOIN pp
ON pp.p# = video.p#
UPDATE PRODUCT 
SET PRICE = product.price * 0.95
FROM PRODUCT
WHERE EXISTS((SYSDATE-whenfinalised)>=20) AND (COUNT(video.p#)< 5);

它告诉我我的更新产品,sql命令未正确结束。

我的答案将非常通用,因为没有测试数据。在第二个UPDATE中,您有COUNT,这意味着您需要GROUP BY子句。不幸的是,UPDATE不支持GROUP BY。您可以通过组合CTEUPDATE来实现这一目标。此外,您混合了语法。请查看我发布的链接。您将找到如何编写查询。

最新更新