Posts Tagged ‘Oracle’

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

Воскресенье, 25 декабря, 2016

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

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

Суббота, 24 декабря, 2016

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

Курсы валют

Суббота, 24 декабря, 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.
Напишите запрос, который покажет действующее значение курса заданной валюты на любую заданную календарную дату.
(далее…)

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

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

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

Необходимо удалить дубликаты

Воскресенье, 11 сентября, 2016

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

Идентичны ли данные в двух таблицах

Воскресенье, 11 сентября, 2016

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

Задание по SQL. Часть 4

Воскресенье, 28 августа, 2016

Создать архивные таблицы такой же структуры, что таблица задач («задача») и таблица, связующая задачи и сотрудников («задача-сотрудник»). Написать функцию, перемещающую записи из основных таблиц («задача» и «задача-сотрудник») в соответствующие архивные таблицы и работающую в многопользовательском режиме. В качестве параметра функция получает дату, которая указывает, что задачи, завершенные до этой даты должны быть перенесены в архив. Функция возвращает 0, если в архивные таблицы была перенесена хотя бы 1 задача; функция возвращает 1, если не было перенесено ни одной задачи и возвращает 2, если при выполнении возникла ошибка.

Логическая модель

Логическая модель


(далее…)

Задание по SQL. Часть 3

Воскресенье, 14 августа, 2016

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

Логическая модель

Логическая модель

(далее…)

Задание по SQL. Часть 2

Суббота, 13 августа, 2016

Написать функцию, добавляющую данные о новой задаче и подключенных к ее решению сотрудниках в соответствующие таблицы БД. Параметрами функции являются: название задачи, даты начала и завершения по плану, описание задачи, код сотрудника, являющегося ответственным за эту задачу, и коды сотрудников, подключенных к ее решению. Последние передаются в виде строки с фиксированным разделителем между кодами различных сотрудников. Задача считается ранее введенной в систему, если существует задача с таким же названием и датой начала. В этом случае функция должна вернуть 1. Если допущены ошибки в параметрах функции, например, сотрудника с таким кодом не существует или параметр даты не преобразуется к корректному формату даты, то функция должна вернуть 2. В случае прочих ошибок, возникших при выполнении функции, вернуть 3. В случае успешного завершения функция должна вернуть 0.

Логическая модель

Логическая модель

(далее…)

Задание по SQL. Часть 1

Суббота, 30 июля, 2016

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

Вопрос:
Написать запрос: выдать лучший результат, средний результат, среднеквадратичное отклонение результата в каждом заезде, при условии, что до финиша (с очками) доехало не менее 3 машин и их суммарная мощность не меньше 1000 л.с. Если точного значения мощности для конкретной машины не имеется, то берется мощность, равная 334 л.с. У лучших результатов номера машин и их описание, если есть. Упорядочить результаты по возрастанию. Создать индексы для эффективной работы запроса.

Логическая модель

Логическая модель

(далее…)