#sql #база_данных #oracle #запрос #запрос_в_запросе
Есть таблица SALES c полями: ID_SALE - ID продажи name_good - название товара date_sale - дата продажи FIO_saler -ФИО продавца price- цена товара Нужно вывести всех продавцов, которые продали больше чем продавец “Иванов Иван” (записи с таким продавцом должны быть) за май 2015. Вопрос: почему возникает ошибка, как её исправить, чтобы выводилась нужная информация? select FIO_saler,price from sales where sum(price)> all (SELECT price from sales where FIO_saler='Иванов Иван Иванович' ); /
Ответы
Ответ 1
SELECT FIO_saler, SUM(price) AS summa FROM sales WHERE date_sale > '2015-12-23' AND date_sale < '2015-12-31' GROUP BY FIO_saler HAVING SUM(price) > (SELECT SUM(price) FROM sales WHERE FIO_saler='Иванов Иван Иванович'); ПроверкаОтвет 2
SELECT FIO_saler, price FROM SALES WHERE FIO_saler IN (SELECT FIO_saler FROM SALES GROUP BY FIO_saler HAVING SUM(PRICE) > (SELECT SUM(price) FROM SALES WHERE FIO_saler = 'Иванов Иван Иванович') ) AND date_sale BETWEEN _Начало_ AND _Конец_ Вам остается только наложить условие на период продажи вместо _Начало_ и _Конец_ в соответствии с типом данных поля.
Комментариев нет:
Отправить комментарий