Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Проверить запросы  [new]
flowy
Member

Откуда:
Сообщений: 27
Ребят, кому не сложно, проверьте пожалуйста задания. Просто нет под рукой инструментария, чтобы прогнать их. А сделать надо быстро.
1.
Написать запрос, который вернет последние действующие записи привязок кодов направлений к зонам.
Запрос должен возвращать все поля таблицы t_mts_c_ref.
Таблица t_mts_c_ref привязка кодов направлений МТР к тарифным зонам МТР
mts_c_id - идентификатор записи (первичный ключ)
mts_zone_id - идентификатор тарифной зоны
mts_cod_id - идентификатор кода направления
date_begin - дата начала
date_end - дата окончания (может быть не заполнена)
mts_type_vnd_id - идентификатор поставщика связи

Формат дат - ДД ММ YYYY, т.е. часы и минуты не указаны .
Комбинация полей mts_zone_id, mts_cod_id, date_begin, mts_type_vnd_id
всегда уникальная и определяет действующую на date_begin привязку
кодов направлений к зонам по данному поставщику.

Записи могут быть введены как задним, так и передним числом,
т.е нельзя ориентироваться на текущую дату.

ОТВЕТ

SELECT *
FROM t_mts_c_ref
WHERE date_begin IN (SELECT max(date_begin)
                     FROM t_mts_c_ref
                     GROUP BY mts_zone_id,
                              mts_cod_id,
                              mts_type_vnd_id
                     )


2. Написать запрос, который вернет список оплат по диапазону конкретных дат(с ...по ), показывающий даты оплаты, сумму, наименование пункта приема оплат и вида платежного документа.
В случае отсутствия вида платежного документа - показывать "Вид ПД не найден". Результаты сгруппировать по датам (на каждое число), видам платежных документов и пунктам приема оплат.

таблица оплат t_payments
payment_id - идентификатор оплаты (первичный ключ)
summ - сумма
pay_date - дата оплаты.Формат даты – полный (до секунд)
pay_doc_id - идентификатор вида платежного документа
pos_id - идентификатор пункта приема оплат
идентификатор вида платежного документа может быть не заполнен

таблица - справочник видов платежных документов t_pay_doc_ref
pay_doc_id - идентификатор (первичный ключ)
name - наименование

таблица - справочник пунктов приема оплат t_point_of_sales_ref
pos_id - идентификатор (первичный ключ)
name - наименование

ОТВЕТ
SELECT DATE(p.pay_date) as pay_date,
       sum(p.summ) as pay_sum,
       point.name as point_name,
       NVL(doc.name, 'Вид ПД не найден') as doc_name
       
FROM t_payments as p
LEFT JOIN t_point_of_sales_ref as point ON point.pos_id=p.pos_id
LEFT JOIN t_pay_doc_ref as doc ON doc.pay_doc_id=p.pay_doc_id
WHERE p.pay_date BETWEEN (:date1 AND :date2)
GROUP BY pay_date, point_name, doc_name


Заранее премного благодарю!
10 июн 15, 18:21    [17756864]     Ответить | Цитировать Сообщить модератору
 Re: Проверить запросы  [new]
Elic
Member

Откуда:
Сообщений: 29979
flowy
Просто нет под рукой инструментария
Мозгов?!
10 июн 15, 18:34    [17756918]     Ответить | Цитировать Сообщить модератору
 Re: Проверить запросы  [new]
flowy
Member

Откуда:
Сообщений: 27
Elic
flowy
Просто нет под рукой инструментария
Мозгов?!

Доверяй, но проверяй.
А вообще ваш ответ конечно очень оказался полезен, спасибо за внимание.
10 июн 15, 18:36    [17756930]     Ответить | Цитировать Сообщить модератору
 Re: Проверить запросы  [new]
Elic
Member

Откуда:
Сообщений: 29979
flowy
оказался полезен
Озвучь-ка, какого такого "инструментария" нет у тебя под рукой, а у нас есть.
10 июн 15, 18:43    [17756951]     Ответить | Цитировать Сообщить модератору
 Re: Проверить запросы  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54381
flowy
DATE(p.pay_date)
10 июн 15, 18:49    [17756978]     Ответить | Цитировать Сообщить модератору
 Re: Проверить запросы  [new]
Добрый Э - Эх
Guest
flowy,

Первый запрос совершенно точно не решает поставленной задачи...
До второго дочитал, но осмысливать прочитанное после первого запроса - не получаетя
10 июн 15, 18:58    [17757015]     Ответить | Цитировать Сообщить модератору
 Re: Проверить запросы  [new]
flowy
Member

Откуда:
Сообщений: 27
Добрый Э - Эх, andreymx, большое спасибо.
10 июн 15, 20:12    [17757222]     Ответить | Цитировать Сообщить модератору
 Re: Проверить запросы  [new]
flowy
Member

Откуда:
Сообщений: 27
Вопрос закрыт. Всем спасибо. Просьба к модераторам удалить или закрыть тему.
10 июн 15, 20:21    [17757244]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить