2013-05-26 2 views
0

У меня возникли проблемы с написанием инструкции sql для создания триггера, который применяет 15% скидку на любые будущие покупки, сделанные лучшим клиентом. он будет применять 15% -ное сокращение к сумме pruchase всякий раз, когда новая покупка, сделанная этим главным клиентом, будет вставлена ​​в таблицу закупок. Так можно добавить триггер после вставки новой покупки? Я читал пару руководств/учебников, но хотел бы получить помощь/руководство. благодаряСоздать триггер oracle, который применяет скидку 15% для rnk = 1

SELECT CLIENTNO, CNAME, SPA PURCHASE_AMOUNT 
FROM (SELECT CLIENT.CLIENTNO, CLIENT.CNAME, SUM(PURCHASE.AMOUNT) SPA, RANK() OVER (ORDER  BY SUM(PURCHASE.AMOUNT) DESC) RNK 
FROM PURCHASE JOIN CLIENT ON PURCHASE.CLIENTNO = CLIENT.CLIENTNO 
GROUP BY CLIENT.CLIENTNO, CLIENT.CNAME) 
WHERE RNK = 1; 
+1

Как вы предлагаете предотвратить повторное применение скина при каждом запуске? Выбранное предложение как написанное может легко найти одного и того же клиента снова и снова. –

+0

Это не задача, подходящая для реализации с помощью триггера. –

ответ

0

Похоже, лучшее решение могло бы быть, чтобы иметь таблицу скидок, которые триггер заполняющий/обновления со значением 15% (или 0,15 или 0,85). Последовательность поиска цены продажи учитывала бы это при продаже. (Это может также упростить процесс, скажем, на 10% день.)