Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите с запросом / 5 сообщений из 5, страница 1 из 1
22.08.2017, 20:13
    #39508992
akaipbay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Есть таблица 1 вида:

tbn name1 Аня2 Саша3 Таня4 Ваня5 Олег

Есть таблица 2 вида:

tbnnameotdsal1Аня1090002Саша1055003Таня1070004Ваня2023001Аня1080002Саша1060003Таня1060004Ваня202000

Как написать селект чтобы было вида:


tbnnameotdsal1Аня1090002Саша1055003Таня1070004Ваня2023005Олег001Аня1080002Саша1060003Таня1060004Ваня2020005Олег00

Когда пишу селект
Код: plsql
1.
2.
select t1.name, t1.tbn, t2.sal from persona t1
left join persona2 t2 on t1.name = t2.name;

получаю, не совсем то что нужно:

tbnnameotdsal1Аня1080001Аня1090002Саша 1060002Саша 1055003Таня 1060003Таня 1070004Ваня 2020004Ваня 2023005Олег 00
...
Рейтинг: 0 / 0
22.08.2017, 20:23
    #39509002
akaipbay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
akaipbay,

в таблице 2 могут быть записи "Олег", результат должен быть типа:

tbnnameotdsal1Аня 1090002Саша 1055003Таня 1070004Ваня 2023005Олег 30 10001Аня 1080002Саша 1060003Таня 1060004Ваня 2020005Олег 0 01Аня 10180002Саша 10160003Таня 10160004Ваня 20120005Олег 0 0
...
Рейтинг: 0 / 0
22.08.2017, 21:18
    #39509031
Помогите с запросом
akaipbay,

partition left join
...
Рейтинг: 0 / 0
23.08.2017, 09:31
    #39509122
akaipbay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Добрый Э - Эх,

Спасибо.
...
Рейтинг: 0 / 0
23.08.2017, 09:35
    #39509123
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
akaipbayakaipbay,

в таблице 2 могут быть записи "Олег", результат должен быть типа:




желательно еще одно поле, порядок следования Ань

Код: 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.
SQL> ed
Wrote file afiedt.buf

  1  with t1 (tbn,n) as (
  2  select 1,'Аня' from dual union all
  3  select 2,'Саша' from dual union all
  4  select 3,'Таня' from dual union all
  5  select 4,'Ваня' from dual )
  6  ,t2 (tbn,sal) as (
  7  select 1,100 from dual union all
  8  select 2,200 from dual union all
  9  select 4,400 from dual union all
 10  select 1,101 from dual union all
 11  select 4,501 from dual )
 12  ,tt as(select t2.*,row_number() over (partition by tbn order by rownum) gr from t2)
 13* select * from tt partition by (gr) RIGHT OUTER JOIN t1 on (tt.tbn=t1.tbn)
SQL> /

        GR        TBN        SAL        TBN N
---------- ---------- ---------- ---------- ----
         1          1        100          1 Аня
         1          2        200          2 Саша
         1                                3 Таня
         1          4        400          4 Ваня
         2          1        101          1 Аня
         2                                2 Саша
         2                                3 Таня
         2          4        501          4 Ваня

8 rows selected.

SQL>



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


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