Нужен совет о том, как сделать правильный выбор и обновить запрос, я не уверен, где я ошибся - PullRequest
0 голосов
/ 17 мая 2019

Однако оператор Select работает, я могу понять, почему он не обновляет цену.

Просто фон имен переменных при финализации является датой подтверждения покупки.PP - это таблица, содержащая ключ продукта и дату завершения покупки.

Цель состояла в том, чтобы обновить цены на основе дней с момента последней покупки, а во второй части есть дополнительное условие where, которое считается, если продуктприобретено менее 5 раз за 20 дней.

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 неправильно завершена.

1 Ответ

0 голосов
/ 17 мая 2019

Мой ответ будет довольно общим, потому что нет данных тестирования.Во втором UPDATE у вас есть COUNT, что означает, что вам нужно предложение GROUP BY.К сожалению, UPDATE не поддерживает GROUP BY.Вы можете достичь этого, комбинируя CTE и UPDATE.Кроме того, вы перепутали синтаксис.Пожалуйста, посмотрите на ссылку, которую я разместил.Вы найдете, как написать свой запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...