Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Как достать данные средствами sql. (На внутреннем oracle сервере размещены 5 таблиц), SQL
 
Добрый день. Осталось последнее задание. Не понимаю как его выполнить и в чем смысл...
Во вложении все что есть по данной задаче... :cry:
 
Цитата
Как достать данные средствами sql
Воспользоваться средствами MS Query, возможно предварительно, настроив пользовательский DNS, чтобы получить доступ к этому самому Oracle.
 
Спасибо. Но нужно написать sql запрос в желтом поле. ..Не понимаю.
 
offtop
Igorman, а меня вопрос , в чем у вас сложность c заданием?  Я понимаю, когда вопрос такой, мол делаю то-то, то-то , но не получается , но когда вот так .... Неужели нет желания хоть как-то попытатся сделать самостоятельно?  Если вы студент, то меня очень печалит будущее. Если это какие то курсы, то печалит в двойне. Представьте все тоже самое но форум Хирургов , да даже просто медиков. Вы захотите к такому на прием?
 
В таком случае это просто тест на знание диалекта Oracle SQL. Просто напишите select запрос для получения данных в этой жёлтой ячейке. Собсвенно данные получать не надо.
 
Кнопка цитирования не для ответа [МОДЕРАТОР]

БМВ, я не студент. И специальность у меня другая. И работал я в другой сфере вполне успешно. А сейчас ищу работу. Есть 10 заданий. 9 сделал. А это SQL , которому я не учился и для меня сложно понять что это и как. Мне не столь важен ответ, а важно описание решения, чтобы я разобрался.
Насчет хирурга не знаю, но учиться у человека, который пишет "попытаТся" без мягкого знака, точно не буду))

Андрей VGСпасибо Андрей! Данных нет. Есть название этих пяти таблиц, переведенные в язык SQL, верно? Сейчас почитаю про Select запрос.
И на основе него, нужно будет запрос написать в желтом окне, верно?
 
Цитата
gorman написал:
попытаТся
Ок, Why do you have no wish to do it by your self?  
Без мягких знаков., Но ведь и форум не по правописанию. Не хотел обидеть, просто задаие выглядило имено как проверка знаний студентов иии. ...

понимание SQL

Судя по всему вам будет не просто.  Мало прстого  SELECT перечислить те поля что в задаии с указанием из каких таблиц .  Судя по тому что вижу, там некоторая иерархия.  Самым простым будет WHERE для диапазона дат.
После ужина посмотрю. Работа дело святое.

Что-то подобное. Основная сложность, и в случае чего на это надо давить, что без описания модели данных и без даных, по названиям полей, не известно как связаны таблицы ..... Например dim.operator отсался неудел, но допустить что через него связаны таблицы могу.
Код
SELECT [dim.price_plan_group].market_key, [dim.price_plan].pp_archetype, [rep.revenue].revenue_total, [rep.revenue].arpu, [dim.def].memo
FROM (([dim.price_plan] 
INNER JOIN [dim.price_plan_group] ON [dim.price_plan].item_desc = [dim.price_plan_group].item_desc) 
INNER JOIN [dim.def] ON [dim.price_plan_group].market_key = [dim.def].market_key) 
INNER JOIN [rep.revenue] ON [dim.price_plan_group].market_key = [rep.revenue].market_key
WHERE ((([rep.revenue].time_key)>="01.01.2017" And ([rep.revenue].time_key)<="31.01.2017")); 

ну и по тут именно по ORACLE SQL
Изменено: БМВ - 1 Мар 2017 21:02:07
 
Цитата
БМВ написал:
Судя по всему вам будет не просто.  Мало прстого  SELECT перечислить те поля что в задаии с указанием из каких таблиц .  Судя по тому что вижу, там некоторая иерархия.  Самым простым будет WHERE для диапазона дат.
После ужина посмотрю. Работа дело святое.
Спасибо заранее. Сейчас посмотрел, что Select - это как вы и сказали. Перечислять поля и указывать из каких таблиц.
 
Уважаемые модераторы,
тема конечно с Excel связана только заданием оформленном в нем, но не удаляете тему. Хотяь я и немного наехал сперва, но в данном случае думаю помочь можно.
 
Михаил, в Oracle даты задают по другому
Цитата
DATE '1998-12-25'
Literals..
Цитата
FROM [dim.operator],
это приведёт к декартовому произведению - каждой строке таблицы dim.operator будут соответствовать все строки результата соединённых через join остальных таблиц. Из этой таблицы не выбираютя данные, как вы правильно заметили, тогда зачем использовать её в запросе?
 
Андрей VG
Был уверtн в том что подключитесь.  Откуда dim.operator взялся  сам не знаю. Пишу одно а вставляю другое :-( . Аааа, знаю Модель то накидал в access, таблица висит, вот во from и попала.. исправил.
Where так?
Код
WHERE ((([rep.revenue].time_key)>='2017.01.01'  And ([rep.revenue].time_key)<= '2017.01.31' )); 
точно нет

надо это использовать  to_date( '01.01.2017', 'dd.mm.yyyy')
Изменено: БМВ - 1 Мар 2017 21:13:51
 
Я сейчас со смарта - не удобно. Скорее всего утром только смогу проверить. С Oracleуже год не общался, сейчас всё SQL Server удёт.
 
Всё же, если судить по одинаковым названиям полей, то связи между таблицами идут по двум полям
Код
Select
    rep.revenue.market_key,
    dim.price_plan.pp_archetype,
    rep.revenue.revenue_total,
    rep.revenue.arpu,
    dim.def.memo
From rep.revenue TRR
    Left Join dim.def TDD On (TRR.market_key = TDD.market_key And TRR.segment_key = TDD.segment_key)
    Left Join dim.price_plan_group TDPPG On (TRR.market_key = TDPPG.market_key And TRR.price_plan_desc = TDPPG.price_plan_desc)
    Left Join dim.price_plan TDPP On (TDPPG.item_desc = TDPP.item_desc And TDPPG.pp_pritok = TDPP.pp_pritok)
Where (rep.revenue.time_key >= DATE '2017-02-02')
    And (rep.revenue.time_key <= DATE '2017-02-04');

Хотя по фильтру указан всё же временной диапазон (в Oracle вроде нет просто Time типа). Может фильтр будет
Код
Where (TO_CHAR(rep.revenue.time_key, 'HH24MISS') >= '080000')
    And (TO_CHAR(rep.revenue.time_key, 'HH24MISS') <=  '180000');
Изменено: Андрей VG - 1 Мар 2017 22:56:54
 
Андрей, да segment_key я наверно зря выкинул. в dim.def пропустил глазами, решил что не нужен.

Можно еще такую конструкцию
Код
WHERE TIME_CREATED BETWEEN TO_DATE('26/JAN/2011','dd/mon/yyyy') 
            AND TO_DATE('26/JAN/2011','dd/mon/yyyy') + INTERVAL '86399' second;
естесвенно с изменениями.
 
Цитата
БМВ написал: Можно еще такую конструкцию
да, пожалуй. Спасибо за вариант.
Страницы: 1
Читают тему (гостей: 1)