Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 объединение таблиц  [new]
PlanB
Member

Откуда: Moscow
Сообщений: 2767
таблица1
датаномерпризнакимяцифра1цифра2
01.01.2001111aимя1111001000
01.01.2002222bимя2222002000

таблица2
датаномерпризнакимяцифра3цифра4
01.01.2001111aимя1111011001
01.01.2002333симя3333003000
01.01.2003222bимя2222012001

таблица3 (итог)
датаномерпризнакимяцифра1цифра2цифра3цифра4
01.01.2001111aимя11110010001011001
01.01.2002222bимя222200200000
01.01.2002333симя333003003000
01.01.2003222bимя222002012001


большое спасибо!
8 авг 12, 15:12    [12982304]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
LEFT JOIN или даже лучше FULL JOIN
8 авг 12, 15:19    [12982361]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц  [new]
PlanB
Member

Откуда: Moscow
Сообщений: 2767
записал так - не подтягивает отсутствующие записи таблицы1 (и присутствующие в таблице2) в общий список
select a.date, a.inversia_regn, a.priz, a.name, a.balance, a.turnover, b.balance, b.turnover 
from [MBK$] a 
left join [KORRSCHET$] b
on a.[inversia_regn]=b.[inversia_regn] and a.[date]=b.[date]
8 авг 12, 15:21    [12982373]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
select 
	coalesce(a.date, b.date)
	, coalesce(a.inversia_regn, a.inversia_regn)
	, a.priz
	, a.name
	, a.balance
	, a.turnover
	, b.balance
	, b.turnover 
from [MBK$] a 
full join [KORRSCHET$] b
on a.[inversia_regn]=b.[inversia_regn] and a.[date]=b.[date]
8 авг 12, 15:22    [12982388]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
и конечно же coalesce для полей
priz, name
8 авг 12, 15:24    [12982398]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц  [new]
PlanB
Member

Откуда: Moscow
Сообщений: 2767
HandKot, у меня excel не переваривает функцию coalesce... к сожалению
8 авг 12, 15:37    [12982532]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
замените на
IsNull(a.field, b.field)


если не прокатит, то возможно прокатит NZ (синтаксис такойже как и у IsNull)
8 авг 12, 15:46    [12982616]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц  [new]
PlanB
Member

Откуда: Moscow
Сообщений: 2767
наткнулся на свои посты от 09 года с аналогичной проблематикой. вспомнил, как зарекался не связываться с jet-ом.
переписал все вот в таком виде

select a.[date], a.[inversia_regn], a.[priz], a.[name], a.[balance], a.[turnover], 'MBK' as [MBK_KS] 
from [MBK$] a 
union all
select b.[date], b.[inversia_regn], b.[priz], b.[name], b.[balance], b.[turnover], 'KS' as [MBK_KS] 
from [KORRSCHET$] b 
8 авг 12, 16:30    [12982917]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
PlanB
наткнулся на свои посты от 09 года с аналогичной проблематикой. вспомнил, как зарекался не связываться с jet-ом.
переписал все вот в таком виде

select a.[date], a.[inversia_regn], a.[priz], a.[name], a.[balance], a.[turnover], 'MBK' as [MBK_KS] 
from [MBK$] a 
union all
select b.[date], b.[inversia_regn], b.[priz], b.[name], b.[balance], b.[turnover], 'KS' as [MBK_KS] 
from [KORRSCHET$] b 


только вот результат немного не такой, как хотели в первом посте
Но если он устраивает, то и ладненько
9 авг 12, 08:19    [12985347]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц  [new]
PlanB
Member

Откуда: Moscow
Сообщений: 2767
HandKot, согласен, что не такой. но, короче, устраивает вконтексте задачи.
9 авг 12, 13:49    [12987663]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить