powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Интересный запросик
4 сообщений из 4, страница 1 из 1
Интересный запросик
    #39836899
Филипп_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня!
Задача:

Необходимо вывести Уникальные идентификаторы (ID) Из таблицы ci_mtr_config, которые нужно проверить в таблице sm_eo_accoun_linkage_status yна определенное условие.
Связать таблицы ci_mtr_config и sm_eo_accoun_linkage_status напрямую не удастся.
Установить связь между этими двумя таблицами можно использовав в запросе промежуточные таблицы в след. последовательности:

- ci_sp_mtr_hist
- ci_sp
- Ci-prem_link (таблица связей с тройной сруктурой иерархии )
- cm_eo_account_linkage

Пока что только так удалось сделать:

INSERT INTO table25
(select c4.cm_dest_prem_id--c3.prem_id--c1.mtr_id--, c4.cm_dest_prem_id
from ci_mtr_config c1 -- получили номер прибора учета
JOIN ci_sp_mtr_hist c2 on c1.MTR_CONFIG_ID = c2.mtr_config_id -- получили вышестоящий ИД
JOIN ci_sp c3 on c2.sp_id = c3.sp_id -- Получили номер Точки учета
JOIN cm_prem_link c4 on c3.prem_id = c4.cm_source_prem_id
WHERE c1.mtr_id = '5757612899' and c4.cm_prem_link_type_cd = 'SUPPLY_POINT ' )

SELECT c4.cm_dest_prem_id
FROM cm_prem_link c4
JOIN cm_eo_account_linkage c5 on c4.cm_dest_prem_id = c5.cm_eo_id
JOIN cm_eo_account_linkage_status c6 on c5.cm_eo_account_linkage_id = c6.CM_EO_ACCOUNT_LINKAGE_ID
WHERE c4.cm_source_prem_id in (SELECT id FROM table25) and c6.CM_EO_ACCOUNT_LINKAGE_STAT_FLG = 'ACTV' and c6.END_DT is NULL

Помогите, пожалуйста, ответить на Два вопроса:

1) Как сделать, что бы это отрабатывало в одном запросе ?
2) Как одновременно вывести содержимое c1.mtr_id и соответствующего ему c4.cm_dest_prem_id ?
...
Рейтинг: 0 / 0
Интересный запросик
    #39836964
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филипп_SQLДоброго дня!
Задача:

Необходимо вывести Уникальные идентификаторы (ID) Из таблицы ci_mtr_config, которые нужно проверить в таблице sm_eo_accoun_linkage_status yна определенное условие.
Связать таблицы ci_mtr_config и sm_eo_accoun_linkage_status напрямую не удастся.
Установить связь между этими двумя таблицами можно использовав в запросе промежуточные таблицы в след. последовательности:

- ci_sp_mtr_hist
- ci_sp
- Ci-prem_link (таблица связей с тройной сруктурой иерархии )
- cm_eo_account_linkage

Пока что только так удалось сделать:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
INSERT INTO table25
(select c4.cm_dest_prem_id--c3.prem_id--c1.mtr_id--, c4.cm_dest_prem_id
from ci_mtr_config c1 -- получили номер прибора учета
JOIN ci_sp_mtr_hist c2 on c1.MTR_CONFIG_ID = c2.mtr_config_id -- получили вышестоящий ИД
JOIN ci_sp c3 on c2.sp_id = c3.sp_id -- Получили номер Точки учета
JOIN cm_prem_link c4 on c3.prem_id = c4.cm_source_prem_id
WHERE c1.mtr_id = '5757612899' and c4.cm_prem_link_type_cd = 'SUPPLY_POINT ' )

SELECT c4.cm_dest_prem_id
  FROM cm_prem_link c4
  JOIN cm_eo_account_linkage c5 on c4.cm_dest_prem_id = c5.cm_eo_id
  JOIN cm_eo_account_linkage_status c6 on c5.cm_eo_account_linkage_id = c6.CM_EO_ACCOUNT_LINKAGE_ID
 WHERE c4.cm_source_prem_id in
 (SELECT id FROM table25) and c6.CM_EO_ACCOUNT_LINKAGE_STAT_FLG =  'ACTV' and c6.END_DT is NULL


Помогите, пожалуйста, ответить на Два вопроса:

1) Как сделать, что бы это отрабатывало в одном запросе ?
2) Как одновременно вывести содержимое c1.mtr_id и соответствующего ему c4.cm_dest_prem_id ?


1. сделай тестовые данные в виде селекта с with
2. для своих примеров исползуй тег src и не забывай форматирование
...
Рейтинг: 0 / 0
Интересный запросик
    #39837734
Филипп_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx,

1. сделай тестовые данные в виде селекта с with

Андрей, помоги плиз разобраться, как в данном случае необходимо использовать оператор With, что бы получать результат в одном запуске.

Получается сейчас в моем запрос идет след:

Запуск_1
Вставляем в таблицу 1
Данные из таблицы 2, которая связана с таблицами 3,4,5,6 ...

Запуск_2
Делаем выбору данных из таблицы 10, поле которой совпадает с полем из таблицы 1 и таблица связанна с таблицами 11, 12,13 ...
...
Рейтинг: 0 / 0
Интересный запросик
    #39837845
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ты с Урала, то приезжай в Питер. Бар Твин-Пикс. Бери ноутбук. За парой бутылок пива разберемся )))
Если из Сигмы, то все проще. уже в Питере ))).

А так, тема названа не правильно. Т.к. более правильное название "НЕ Интересный запросик". Без базы данных СоСиЭБи (CC&B) и без пива, разбираться в запросах по 6 таблицам - совершенно желания нет.

IMHO & AFAIK
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Интересный запросик
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]