Archive for the ‘Oracle’ Category

Вопросы на PL/SQL

Воскресенье, Февраль 12th, 2017

Дан код:

CREATE OR REPLACE FUNCTION gеn_еmаil_name(р_fіrst_nаme IN VARCHAR2,
                                          p_last_nаme    IN VARCHAR2)
  RETURN VARCHAR2 IS
  v_emaіl_namе VARCHAR2(19);
BEGIN
  v_emaіl_namе := substr(р_fіrst_nаme, 1, 1) || substr(p_last_nаme, 1, 7) ||
                  '@Oraclе.com';
  RETURN v_emaіl_namе;
END gеn_еmаil_name;
/

(далее…)

Процент годовых

Воскресенье, Февраль 12th, 2017

Имеется таблица, в которой по счету на дату хранится остаток и ставка процентов годовых. Необходимо написать запрос, который рассчитает проценты за заданный период, данные будут сгруппированы по интервалам дат, когда остаток и ставка были неизменны.
(далее…)

Интервалы дат

Воскресенье, Январь 8th, 2017

Имеется таблица с интервалами дат. Необходимо написать запрос, который позволит объединить периоды, которые пересекаются или граничат.
(далее…)

Дни рождения клиентов

Воскресенье, Январь 8th, 2017

Имеется таблица с днями рождения клиентов. Необходимо написать запрос, который позволит получить список клиентов, у которых в ближайшие N дней от заданной даты будет день рождения.
(далее…)

Дерево

Пятница, Январь 6th, 2017

Есть таблица с данными в виде дерева. Необходимо написать запрос для получения дерева от корневого узла, узел 5 и все его потомки не должны попасть в результат, нужно вывести для каждого узла имя его родителя, данные отсортировать в порядке возрастания ID с учетом иерархии.
(далее…)

Генератор непрерывного интервала дат

Воскресенье, Декабрь 25th, 2016

Напишите генератор непрерывного интервала дат с 10.01.2013 по 10.02.2013 в виде запроса.
(далее…)

Платёжный документ. Подитоги

Воскресенье, Декабрь 25th, 2016

По таблице из предыдущего примера написать запрос, который выведет данные общей суммой за каждый месяц по типам документов с итогами по каждому типу и общим итогом.
(далее…)

Платёжный документ

Суббота, Декабрь 24th, 2016

Имеется таблица в данными по платежным документам. Необходимо написать запрос, который выведет все документы того типа, которого за все время было по сумме больше всего. Если таких типов несколько, то вывести все такие типы. Для каждой строки результата вывести промежуточную сумму платежей данного типа от самого раннего до текущего платежа включительно.
(далее…)

Курсы валют

Суббота, Декабрь 24th, 2016

Имеется таблица курсов валют следующей структуры:

CREATE TABLE "CURRENCY_RATE" 
("CURR_ID" INTEGER,
 "DATE_RATE" DATE,
 "RATE" NUMBER
) TABLESPACE MIRAVILD_DATA;
 
COMMENT ON TABLE "CURRENCY_RATE" IS 'Курс валюты';
COMMENT ON COLUMN "CURRENCY_RATE"."CURR_ID" IS 'Идентификатор валюты';
COMMENT ON COLUMN "CURRENCY_RATE"."DATE_RATE" IS 'Дата курса';
COMMENT ON COLUMN "CURRENCY_RATE"."RATE" IS 'Значение курса';

CREATE UNIQUE INDEX "U_IDX_CURRENCY_RATE" ON "CURRENCY_RATE" ("CURR_ID", "DATE_RATE") TABLESPACE MIRAVILD_INDEX;

ALTER TABLE "CURRENCY_RATE" ADD CONSTRAINT "PK_CURRENCY_RATE" PRIMARY KEY ("CURR_ID", "DATE_RATE") 
USING INDEX "U_IDX_CURRENCY_RATE" ENABLE VALIDATE;
/

Курс валюты устанавливается не на каждую календарную дату.
Уникальный ключ: curr_id + date_rate.
Напишите запрос, который покажет действующее значение курса заданной валюты на любую заданную календарную дату.
(далее…)

Количество долгов в каждом месяце

Воскресенье, Ноябрь 6th, 2016

Написать запрос, показывающий, сколько долгов было в каждом месяце 2014 года в работе по договору (долг считается в работе в данном месяце если по договору мы имеем право работать хотя бы один день данного месяца).
(далее…)