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
。您可以通过组合CTE
和UPDATE
来实现这一目标。此外,您混合了语法。请查看我发布的链接。您将找到如何编写查询。