powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Получит данные из 2х таблиц
7 сообщений из 7, страница 1 из 1
Получит данные из 2х таблиц
    #37430390
mbegali
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пожалуйста помогите, как можно получить такой результат одним запросом. SQL/400.
TABLE1
ID1 COL1 COL2
A v1 v2
A v1 v2
B v8 v9

TABLE2
ID2 COL3 COL4
A v3 v4
A v3 v5
A v3 v6
A v3 v7
C v10 v11

RESULT (select)
ID COL1 COL2 COL3 COL4
A v1 v2 v3 v4
A v1 v2 v3 v5
A xx xx v3 v6
A xx xx v3 v7
B v8 v9 xx xx
C xx xx v10 v11
...
Рейтинг: 0 / 0
Получит данные из 2х таблиц
    #37430466
Фотография Hunterik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не стал сразу шутить, подумал, что full outer join вы не знать не можете...
Получилось интересно, нашел такое:
i5/OS InfocenterWhat's new for V6R1

Read about new or significantly changed information for the SQL programming topic collection.
Row change timestamp column

When you create a table, you can now define a column to be a row change timestamp column. Every time a row is added or changed in the table, the row change timestamp column value is set to the timestamp of the insert or update operation. For more information, see Creating a row change timestamp column.
Row change expressions

The new expressions ROW CHANGE TIMESTAMP and ROW CHANGE TOKEN can be used to determine when a row was last changed. For more information, see Row change expressions.
Full outer join

DB2® for i5/OS® now supports full outer joins. Previously, you could only simulate a full outer join by using a left outer join and a right exception join. For a full outer join example, see Full outer join.

Это Вам не поможет - Full outer join ?
...
Рейтинг: 0 / 0
Получит данные из 2х таблиц
    #37430629
mbegali
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за быстрый отклик, я пробовал нечто подобное left join, right join ними (наша система не поддерживает FULL OUTER JOIN, у нас более ранняя версия) но не получилось, в место хх (space or null) у меня повторяется записи из первой таблицы. И это правильно по теориям join ов, из-за этого я искал другой подход. Если вы в практике решали подобную задачу помогите пожалуйста.
...
Рейтинг: 0 / 0
Получит данные из 2х таблиц
    #37431531
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mbegali,

какая версия ОС?
...
Рейтинг: 0 / 0
Получит данные из 2х таблиц
    #37431924
mbegali
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
v5r4
...
Рейтинг: 0 / 0
Получит данные из 2х таблиц
    #37431984
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mbegaliv5r4
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
with 
  t1 as (
select ID1, COL1, COL2, rownumber() over (partition by ID1) rownum
fromTABLE1
)
, t2 as (
select ID2, COL3, COL4, rownumber() over (partition by ID2) rownum
from TABLE2
)
select t1.ID1 ID, t1.COL1, t1.COL2, coalesce(t2.COL3, 'xx') COL3, coalesce(t2.COL4, 'xx') COL4
from t1
left join t2 on t1.ID1=t2.ID2 AND t1.rownum=t2.rownum
  union all
select t2.ID2 ID, 'xx', 'xx', t2.COL3, t2.COL4
from t2
where not exists (select  1  from t1 where t1.ID1=t2.ID2 AND t1.rownum=t2.rownum)
order by ID
...
Рейтинг: 0 / 0
Получит данные из 2х таблиц
    #37432091
mbegali
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,

Все работает, спасибо вам за помощь!.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Получит данные из 2х таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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