Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вероятно оконные функции: выбрать любое значение из группы / 4 сообщений из 4, страница 1 из 1
17.12.2019, 15:12
    #39904129
CrazyDiamond
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вероятно оконные функции: выбрать любое значение из группы
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
WITH zameni AS 
  (SELECT '123456' base, '234567' zamena FROM dual UNION ALL  
  SELECT '234567' base, '123456' zamena FROM dual UNION ALL  
  SELECT 'ABC' base, 'DEF' zamena FROM dual UNION ALL  
  SELECT 'ABC' base, 'GHK' zamena FROM dual UNION ALL  
  SELECT 'DEF' base, 'ABC' zamena FROM dual UNION ALL  
  SELECT 'DEF' base, 'GHK' zamena FROM dual UNION ALL  
  SELECT 'GHK' base, 'ABC' zamena FROM dual UNION ALL  
  SELECT 'GHK' base, 'DEF' zamena FROM dual) 

SELECT * 
FROM 
  (SELECT '123456' art FROM dual UNION ALL
  SELECT '234567' art FROM dual UNION ALL
  SELECT 'ABC' art FROM dual UNION ALL
  SELECT 'GHK' art FROM dual UNION ALL
  SELECT 'BEZZAMEN' art FROM dual) Arts 



Есть набор артикулов в заказе (Arts) и соотношение Артикул-Замена (zameni).
Как получить только те артикула, для которых в этом заказе нет замен, и только один ЛЮБОЙ артикул из всех взаимозаменяемых?
Задача получить только уникальные сертификаты на артикула, к которым подходят одинаковые сертификаты.

Т.е. на выходе ожидается увидеть :
123456
BEZZAMEN
ABC

ИЛИ

123456
BEZZAMEN
GHK

ИЛИ

234567
BEZZAMEN
ABC

ИЛИ

234567
BEZZAMEN
GHK


Предполагаю, что тут надо оконными функциями делать группу артикулов, и далее по группе брать FIRST, MAX, MIN - любой один.
Пока думаю, пытаюсь..
...
Рейтинг: 0 / 0
17.12.2019, 15:27
    #39904141
CrazyDiamond
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вероятно оконные функции: выбрать любое значение из группы
Забыл указать: Oracle 11.2.0.4.0
...
Рейтинг: 0 / 0
17.12.2019, 15:40
    #39904149
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вероятно оконные функции: выбрать любое значение из группы
Код: plsql
1.
2.
SELECT '123456' base, '234567' zamena FROM dual UNION ALL  
  SELECT '234567' base, '123456' zamena FROM dual UNION ALL 





Меняем шило на мыло а затем мыло на шило? Главное "процесс" ?

SY.
...
Рейтинг: 0 / 0
17.12.2019, 16:39
    #39904195
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вероятно оконные функции: выбрать любое значение из группы
CrazyDiamond,

не совсем понял задачку
но чего-то наменял
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
SQL> ed
Wrote file afiedt.buf

  1  WITH zameni AS
  2    (SELECT '123456' base, '234567' zamena FROM dual UNION ALL
  3    SELECT '234567' base, '123456' zamena FROM dual UNION ALL
  4    SELECT 'ABC' base, 'DEF' zamena FROM dual UNION ALL
  5    SELECT 'ABC' base, 'GHK' zamena FROM dual UNION ALL
  6    SELECT 'DEF' base, 'ABC' zamena FROM dual UNION ALL
  7    SELECT 'DEF' base, 'GHK' zamena FROM dual UNION ALL
  8    SELECT 'GHK' base, 'ABC' zamena FROM dual UNION ALL
  9    SELECT 'GHK' base, 'DEF' zamena FROM dual)
 10  , Arts as (
 11    SELECT '123456' art FROM dual UNION ALL
 12    SELECT '234567' art FROM dual UNION ALL
 13    SELECT 'ABC' art FROM dual UNION ALL
 14    SELECT 'GHK' art FROM dual UNION ALL
 15    SELECT 'BEZZAMEN' art FROM dual
 16  )
 17  ,zz as (
 18  select art,nvl(base,art) base,nvl(zamena,art) zamena from arts a,zameni z where art=base(+))
 19  ,zzz as (
 20  select zz.*
 21   ,CONNECT_BY_ROOT base root
 22   from zz
 23  start with base=art
 24  connect by NOCYCLE prior zamena=base)
 25  select distinct max(zamena) minz --,max(zamena) max
 26  from zzz
 27* group by root
SQL> /

MINZ
--------
GHK
BEZZAMEN
234567



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


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