Форум программистов, компьютерный форум, киберфорум
Oracle
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 2
Регистрация: 02.10.2014
Сообщений: 23
1

Исключение определенных групп из запроса

13.04.2017, 14:24. Показов 564. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет!
Задание из лабораторной:
"Включите в созданный пакет процедуру, которая считывает из базы данных информацию о первых двух продавцах, имеющих заказы после даты, переданной в параметре. Вызовите процедуру пакета из безымянного блока."
Вот начал делать:
Oracle 11 SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
CREATE OR REPLACE PACKAGE BODY my_package IS
    PROCEDURE small_letters(str IN STRING) AS
    BEGIN
        DBMS_OUTPUT.PUT_LINE(LOWER(str));
    END;
    
    PROCEDURE get_sal(in_date DATE) AS
    BEGIN
        DECLARE
            CURSOR ptr IS
                SELECT sal.snum, sname, city, comm, odate
                    FROM sal, ord
                    WHERE ord.snum = sal.snum AND odate > in_date
                    ORDER BY sal.snum;
                v_snum sal.snum%TYPE;
                v_sname sal.sname%TYPE;
                v_city sal.city%TYPE;
                v_comm sal.comm%TYPE;
                v_odate ord.odate%TYPE;
                    
        BEGIN   
            OPEN ptr;
            FOR i IN 1 .. 2 LOOP
                FETCH ptr INTO v_snum, v_sname, v_city, v_comm, v_odate;
                DBMS_OUTPUT.PUT_LINE(v_snum||' '||v_sname||' '||v_city||' '||v_comm||' '||v_odate);
            END LOOP;       
        END;
    END;
END my_package;
 
BEGIN
    my_package.get_sal(TO_DATE('04.01.2010', 'dd.mm.yyyy'));
END;
Я не пойму, как сделать, чтобы выводилось по одному заказу от продавца. Сейчас выводится два заказа от продавца Peel. Наверное Having надо, но не пойму как.
Миниатюры
Исключение определенных групп из запроса   Исключение определенных групп из запроса   Исключение определенных групп из запроса  

Изображения
 
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.04.2017, 14:24
Ответы с готовыми решениями:

Определить количество определенных групп символов в строке
Дана строка, состоящая из групп нулей и единиц. Каждая группа отделяется от другой одним или...

Исключение при добавлении групп
Доброго времени суток. Коллеги, подскажите. Есть скриптик, который копирует группы одного...

Определить в слове наличие групп заданного количества определенных сиволов
Нужна помощь. Вообще не понимаю принцип решения этой задачи. Заранее спасибо. Слово называется...

Исключение из string определенных символов
Доброй ночи, очень нужна ваша помощь в таком вопросе... Имеется один стринг, например алфавит:...

1
763 / 664 / 194
Регистрация: 24.11.2015
Сообщений: 2,158
13.04.2017, 16:59 2
Надо перенумеровать заказы после указанной даты, а затем взять столько заказов, чтобы продавцов было 2. Надо учитывать, что может несколько раз встретиться первый продавец, и только потом появиться второй. То есть, заказов-то может оказаться не два, а сколько угодно

Добавлено через 11 минут
Дата должна быть указана с точностью до минут и секунд, иначе задача может не иметь решения. Кстати, формат даты на картинке тоже интересно знать.

Добавлено через 1 час 7 минут
Короче говоря, вот такой селект вернет набор из двух нужных продавцов.
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
WITH xx AS (
SELECT snum, nn, kk
FROM (
SELECT snum, nn, COUNT(snum) OVER(ORDER BY nn ROWS unbounded preceding) kk
FROM (
SELECT  ROW_NUMBER() OVER (ORDER BY odate) nn, 
        dense_rank() OVER (PARTITION BY snum ORDER BY odate) mm,
        snum
FROM ord
WHERE odate > in_date
) WHERE mm=1 --  ORDER BY nn
) WHERE kk<=2 )
SELECT sal.* FROM sal, xx
WHERE sal.snum=xx.snum
;
А сколько там будет заказов, можно определить, если вывести максимальное значение nn. Замечание по поводу минут/секунд в odate остается в силе
1
13.04.2017, 16:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.04.2017, 16:59
Помогаю со студенческими работами здесь

Исключение в выборе определенных ячеек, не прерывая выполнение цикла
Добрый день! Прошу помощи. Есть цикл &quot;for&quot;, служит он для выбора значений ячеек из базы. В одной...

С помощью запроса получить список групп, соответствующих курсу
Есть таблица Table1, с полями ID (счетчик) и GroupName (текстовое). Правила записи групп: &lt;шифр...

Создание запроса на вывод определенных полей на форму
Доброго дня форумчане. Стоит задача, нужно реализовать следующее --либо форму со списком,...

Вывод определенных записей Запроса по флажку в форме поиска
Прошу не убивать- нужное не нашел на форуме. Аксесс знаю пол часа. Есть следующее: 1. Есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru