Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Объединить две таблицы / 7 сообщений из 7, страница 1 из 1
11.08.2011, 17:00
    #37391401
mr.zlodey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединить две таблицы
Здравствуйте.
Помогите объединить две таблицы. Схема тут .
Проблема в том, что поля "a" "a2" разные.
...
Рейтинг: 0 / 0
11.08.2011, 17:24
    #37391436
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединить две таблицы
mr.zlodey,

а словами описать? Навскидку вам нужен FULL JOIN + NVL(), точнее - только после описания задачи.
...
Рейтинг: 0 / 0
11.08.2011, 17:39
    #37391487
mr.zlodey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединить две таблицы
full join выведет:
Код: plaintext
1.
2.
3.
4.
 id   sum   sum2
   1       2       NULL
   2       2       NULL
  NULL NULL      2 
  NULL NULL      3 



Словами описать трудно, можно на примере.
Таблица 1
Код: plaintext
1.
2.
 id sum
   1     2 
   2     3 

Таблица 2
Код: plaintext
1.
2.
 id sum2
   3     2 
   4     3 

Нужно получить:

Код: plaintext
1.
2.
3.
4.
 id sum sum2
   1     2     0 
   2     2     0 
   3     0     2 
   4     0     3 
...
Рейтинг: 0 / 0
11.08.2011, 17:40
    #37391490
mr.zlodey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединить две таблицы
Ошибся
Нужно получить:


Код: plaintext
1.
2.
3.
4.
 id sum sum2
   1     2     0 
   2     3     0 
   3     0     2 
   4     0     3 
...
Рейтинг: 0 / 0
11.08.2011, 18:06
    #37391547
mr.zlodey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединить две таблицы
Словами суть задачи состоит в том, что есть две таблицы.

Таблица 1 содержит поле id и sum
Таблица 2 содержит поле id и sum2
Нужно их объединить по полю id. Проблема в том, что количество записей в таблицах разное, а следовательно значение поля id первой таблицы может не содержатся среди значений поля id во второй таблице или наоборот.
...
Рейтинг: 0 / 0
11.08.2011, 18:27
    #37391584
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединить две таблицы
Если нет связи вида много-ко-многим (т.е. значение id в рамках каждой таблицы - уникально), то можно так

Код: plaintext
1.
2.
3.
4.
5.
6.
select ;
    nvl(tab1.id, tab2.id) as id, ;
    cast(nvl(tab1.sum,  0 ) as N( 10 , 2 )) as sum1, ;
    cast(nvl(tab2.sum,  0 ) as N( 10 , 2 )) as sum2 ;
from tab1 ;
full join tab2 on tab1.id = tab2.id

Размерность N(10,2) - условна. Нужно взять реальную размерность полей sum соответствующей таблицы

Если же есть связь много-ко-многим (т.е. в одной и той же таблице может быть несколько записей с одним значением id), то нужно знать, по каким правилам "складывать" подобные записи. В общем случае, скорее всего, придется писать циклы
...
Рейтинг: 0 / 0
11.08.2011, 20:07
    #37391689
mr.zlodey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединить две таблицы
О спасибо, два часа голову ломал, не знал раньше про nvl()
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Объединить две таблицы / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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