powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вероятно оконные функции: выбрать любое значение из группы
4 сообщений из 4, страница 1 из 1
Вероятно оконные функции: выбрать любое значение из группы
    #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
Вероятно оконные функции: выбрать любое значение из группы
    #39904141
CrazyDiamond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Забыл указать: Oracle 11.2.0.4.0
...
Рейтинг: 0 / 0
Вероятно оконные функции: выбрать любое значение из группы
    #39904149
Фотография 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
Вероятно оконные функции: выбрать любое значение из группы
    #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
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вероятно оконные функции: выбрать любое значение из группы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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